当前位置:编程学习 > JAVA >>

调查:工作了的前辈们谈谈JAVA的经验与心得

虽然之前的帖子没人回复,但是希望大家谈谈自己的工作心得,我要毕业了。想知道知道如何学习JAVA才是对的,不想一味的挣钱而成了机器,抛开一切看实质的思想在JAVA领域里我觉得不是很靠谱。至少对自己的人生不太好。。。 --------------------编程问答-------------------- 我delphi --------------------编程问答-------------------- 不敢当呀! --------------------编程问答--------------------
引用楼主 long419458281 的回复:
抛开一切看实质的思想在JAVA领域里我觉得不是很靠谱。至少对自己的人生不太好。。。

我很想知道你所谓的靠谱是啥,对你的人生那里不太好?
java太没含金量了?类似玩具? --------------------编程问答-------------------- 我去年刚毕业,不敢谈太多,感觉会基本的java编程就可成为java程序员。
不过java相关技术的应用很广,要学深点是要花很多时间和精力的 --------------------编程问答--------------------  靠编程发不了财的,这个只是糊口的技能。 --------------------编程问答-------------------- 给自己定个短期计划和长期计划,这样好些 --------------------编程问答-------------------- 那要看你的出发点了,有种人真诚的偏执于技术探讨,可以拿着一本编程思想当饭吃,耐得住孤独,寂寞,甚至跟bug怄气也说不定。也有种人只想拿这个混饭吃,当做职业生涯的一个起点,或者说是跳板。
楼主,你懂的。 --------------------编程问答-------------------- Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:
1、掌握项目开发的基本步骤
2、具备极强的面向对象的分析与设计技巧
3、掌握用例驱动、以架构为核心的主流开发方法

没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如何思考!你必须学会假如你是架构师,你该如何思考!你必须掌握针对某个特定问题领域的分析方法!

关于基础知识:你可以看看这些名词或知识点,看是否能说出个一二三四来。

JavaSE
----基本语法、数据类型、操作符等:int、long、Integer、Long、if、else、for、while
----面向对象:class(类)、Object(对象)、instance(实例)、state(状态)、behavior(行为)、field、method、new、可见性(访问控制)、attribute、property、package、import、static variable、class variable、instance variable、heap、method area、stack、GC(垃圾回收)、override、overload、对象转型(casting)、多态、this、super
----异常处理:理解编译期错误和运行期错误的区别、Exception、RuntimeException、checked exception、unchecked exception、try、catch、finally、throw new XXXException、throws XXXException、异常处理的基本原则
----数组与集合:数组的定义和使用方法、Collection、List、Set、Map、ArrayList、HashSet、HashMap、Iterator、equals、hashCode、Comparable、Comparator
----常用类:String、intern、常量池、StringBuffer、java.util.Date、SimpleDateFormat、Regex(正则表达式)
----反射机制:Class、Method、Field、invoke、newInstance、BeanUtils(apache-commons)、PropertyUtils(apache-commons)
----输入输出流:InputStream、OutputStream、Reader、Writer、Adapter设计模式与原始流类、Decorator设计模式与包装流类、对象序列化和反序列化
----多线程:Thread、Runnable、sleep、wait、notify、synchronized、lock

Servlet和JSP
----HttpServlet、doGet、doPost、HttpServletRequest、HttpServletResponse、request.getParameter()、request.setAttribute()、request.getAttribute()、request.getSession()、ServletContext、Filter、web.xml、tomcat、forward与redirect、http协议的无状态性、cookie、JSP Scope Object、<c:out …/>、<c:forEach …>

HTML与JavaScript
----你需要能够理解常见的网页标签、理解在网页中引入JavaScript的方法、以及JavaScript的基本语法与使用方法

以上,就是你进一步学习Java所必备的基本知识。特别是一些个专业术语和名词,看到这些名词,如果你像看到亲爹一样亲切,那么说明你对Java的基础知识就很熟悉了。

接下来是SSH:
对于初学者来说,这三大框架被赋予了太多神秘的色彩,似乎它们是重中之重的知识!但是对于拥有多年Java开发经验的专业技术人员来说,对于那些Java牛人来说,却对这三大框架不太感冒!难道它们不重要吗?

现在很多企业都在用这三大框架,所以很多企业也把掌握这三大框架作为招聘的必备条件。不可否认的是,也有很多大型企业没有用这三大框架,这些企业经过多年发展,自身已经有一定的技术积累,也形成了自己独特的技术框架体系。这三大框架既可以说很重要,也可以说不重要。

说重要的原因在于:这三大框架对JavaEE开发中所存在的普遍的问题,提供了优美的解决方案,它们蕴含了这个行业中最NB的开发人员的努力和想法,所以,学习这三大框架,你就可以窥探到这些处于技术巅峰的牛人们究竟对一个问题是怎么想的,通过一种什么样的设计思路去解决问题的。所以,对于你来说,你没有太多项目开发的经验,经验是什么?经验就是你知道可能会遇到哪些问题,针对哪个问题可以有哪些解决方法,在某个情景下,哪种解决方法是较好的,哪种方法不太好等等!如果你没做过什么项目,你根本就不会去意识到你可能会遇到哪些问题,而这些问题往往又是非常关键的!解决得不好,会影响到你的程序的稳定性、可扩展性等等!三大框架就给初学者提供了了解你以后可能会遇到哪些问题,以及针对这些问题的解决方案!

当你了解了这三大框架为什么是重要的,那么你也就能理解,为什么这三大框架也可以说是不重要的。如果你曾经开发过很多项目,你碰到了各种各样的问题,凭着你的技术功底,逐个击破了这些问题,在这些人眼里,三大框架(是不是还有N个框架?呵呵)都是浮云!

你属于哪一种人呢?如果你没有太多项目开发经验,那么三大框架对于你来说就是非常重要的!而且,由此你也知道了该怎么去学这三大框架。对于三大框架的学习而言,着力点在于给你展示问题,并触发你自己主动的思考,我们鼓励你提出自己的想法,也许你的想法很白痴,但那毕竟是你自己的想法,如果你不知道牛人的想法,那你怎么知道自己的想法是很白痴的呢?在这种思想的碰撞过程中,你就会逐渐提高自己!所以,三大框架学完之后,你不应该只是看到一大堆配置文件,你不应该只是看到了一些Action,一些Service,一些映射文件,你不应该只知道session.save/update/delete,你不应该只是知道struts2中有一堆interceptor,你不应该只是看到一堆jar包……

如果你只是知道拷贝一堆jar包,定义一系列配置文件之后,SSH三大框架就能够运行起来了,也可以给你干活了,那么,很悲哀的是,你仍然没有掌握三大框架的精粹!请你回答以下问题:

Struts2:
为什么每次请求都要创建一个Action对象?
ModelDriven拦截器的配置中refreshModelBeforeResult解决了什么问题?
为什么在web.xml中配置的StrutsPrepareAndExecuteFilter要过滤所有的请求?
请你给我谈谈ValueStack?
Struts2是如何实现MVC设计模式的?

Spring:
你为什么要用Spring?
请你聊一聊IOC/DI?
什么是声明式的事务管理?为什么要使用声明式的事务管理?Spring如何实现声明式的事务管理?
把spring和hibernate集成,定义事务管理特性的时候,为何要将除了添加、删除、更新操作之外的方法,即主要执行查询任务的方法定义为read-only?

Hibernate:
请你谈谈你对OR映射的理解?
很多人说Hibernate不适合大项目,性能有问题,你是如何理解的?
Hibernate为什么一定要定义一个数据库标识?
为什么Hibernate建议你的实体类实现hashCode和equals方法?
谈谈你对Hibernate实体类中的数据库标识与数据库主键之间关系的认识?
谈谈你对Hibernate关联映射与数据库外键之间关系的认识?
调用session.save()方法,hibernate一定会发出insert语句吗?谈谈你的理解
调用session.update()方法,hibernate一定会发出update语句吗?谈谈你的理解
请你聊一下以下名词、概念或用法:lazy、lazy=”extra”、inverse、fetch、fetch=”join”、fetch=”subselect”、batch-size
配置了lazy=”true”一定会实现懒加载吗?
请你谈谈Hibernate中的“N+1”问题
请你谈谈Hibernate有哪些最佳实践?

以上并非SSH中全部重点的问题,但它们能考察你能否灵活运用SSH框架!如果你能深刻理解这些问题,再配以合适的实战项目训练,你也会逐渐成为牛人!

最后是项目开发能力:
不管你是学Java还是别的技术,你的根本目的在于给客户创造价值!否则,你下大力气学习的东西,随着技术的进步和更新,很快就会过时!所以,技术的核心在于用技术创造有价值的成果!也就是说,客户需要什么,你就要用技术把客户需要的东西给他造出来!一个公司之所以要用各种福利条件极力挽留你,是因为你能够给公司带来极高的利益!那么,你有什么可以给公司利用的呢?公司最看重你的哪方面的能力呢?

做项目需要的能力很多,其中最核心最基础的就是建模能力(现在最主流的就是面向对象建模!)。什么是建模能力呢?

我给大家一个面试题:
一个保险公司的保险卡管理模块:销售人员领取保险卡信息(保险卡数量、卡号、领取日期),然后直接销售给客户,销售完毕后,将保险卡信息录入保险公司系统内部(销售人员信息、购买人信息、购买的保险卡数量、卡号等),客户登录保险公司网站激活保险卡,需要填写(保险卡卡号、激活密码、被保险人信息、受益人信息)

要求就是:如果这个模块交给你来做,你要怎么做?你要解决哪些问题?你可否画个图,给我描述一下你的想法是什么吗?

这只是一个面试题而已,因为只有简单几句话,所以我把它放到这里,让大家感受一下所谓建模要解决什么问题。而业务领域的问题实在是太多了!也许一个几十上百页的需求文档才能把某个业务领域的问题描述清楚,而你的职责就是要把它们实现出来!

某个公司要开发一个考勤管理系统,要求与现有的人力资源系统对接,你是主要的技术负责人,那么,你要做哪些工作呢?

某ERP项目要实现一个排班管理模块,交给你去完成,你如何去完成呢?

不要抱怨项目经理给你的信息太少(只有几句话),不要抱怨客户没有描述清楚他们的需求……你的价值就在于理顺所有的问题,用各种手段获得你想要的信息,按照一定的思路汇总,并在特定的时间里逐个解决它!

你应该意识到学Java不是一个坦克大战、一个网络飞车、一个CMS、一个DRP、一个OA那么简单,你不要沉迷于那些技术细节(虽然也是有必要的,但不要转牛角尖),不要满足于实现了CRUD式的项目需求(虽然这是基础中的基础),在你的前方,永远有一个目标在那里,需要你去努力追赶! 

今后你将面对更加繁杂的需求,你学习项目的唯一目的,就是:学习如何将需求转化为实现,如何对需求进行分析,如何建立概念模型,如何理顺各种概念之间的关系,如何进行设计,如何选择合适的技术来实现你的设计方案,如何对你的实现进行测试,如何解决你所遇到的形形色色的问题(性能、需求变更等)。当你真正到公司里面从事了几年开发之后,你就会同意我的说法!

利用Java找工作,需要的就是项目经验,项目经验就是理解项目开发的基本过程,理解项目的分析方法,理解项目的设计思路,理解项目的实现技巧,理解项目的测试方法,理解项目中各种问题的解决方案!!!

所以,你该清楚你的目标了! --------------------编程问答-------------------- 关注中 --------------------编程问答-------------------- hao --------------------编程问答--------------------
引用 8 楼 li_tengfei 的回复:
Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:
1、掌握项目开发的基本步骤
2、具备极强的面向对象的分析与设计技巧
3、掌握用例驱动、以架构为核心的主流开发方法

没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假……

是不是自己写的?牛逼,写那么多不容易,内容也好 --------------------编程问答-------------------- mark --------------------编程问答-------------------- 你这个问得太广泛了,要怎么回答你呢?

学习JAVA,做JAVA,看你主要想干哪个方向。

JAVA EE ? JAVA SE ? JAVA ME ? 或是基于Android等的开发?系统开发?网络开发?

其实无论哪个方向,基础知识和基本思想都是最重要的。

然后,像8楼的兄弟说的一样,公司交给你的任务你是否能够完成?或是客户的需求你是否能够实现?

如果不能完成,不能实现,那么你把这个任务最小化最简单化去实现它。

在这过程中,你会遇到很多问题,你就应该像此贴一样,到处交流,到处找解决方法。

这样经过三五几年,你就会是一个优秀的软件工程师或是架构师。

做系统,经验很重要(包括行业经验),这东西不能一蹴而就。

说得不全,希望对你有帮助。 --------------------编程问答--------------------
引用 8 楼 li_tengfei 的回复:
Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:
1、掌握项目开发的基本步骤
2、具备极强的面向对象的分析与设计技巧
3、掌握用例驱动、以架构为核心的主流开发方法

没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如……

学习了 --------------------编程问答--------------------
引用 8 楼 li_tengfei 的回复:
Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:
1、掌握项目开发的基本步骤
2、具备极强的面向对象的分析与设计技巧
3、掌握用例驱动、以架构为核心的主流开发方法

没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如……


说得不错,赞个 --------------------编程问答-------------------- 学习了~

引用 8 楼 li_tengfei 的回复:
Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:
1、掌握项目开发的基本步骤
2、具备极强的面向对象的分析与设计技巧
3、掌握用例驱动、以架构为核心的主流开发方法

没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假……
--------------------编程问答-------------------- --------------------编程问答-------------------- 好贴啊! --------------------编程问答-------------------- --------------------编程问答-------------------- 这是个系统工程 --------------------编程问答-------------------- 顶!!! --------------------编程问答-------------------- 学习了 对于我这样的新手! --------------------编程问答-------------------- 觉得学java的最高境界是忘掉代码,
搞明白一个行业的业务,比写代码强 --------------------编程问答-------------------- 关注中 --------------------编程问答-------------------- 关注 
  关注
学习 --------------------编程问答-------------------- --------------------编程问答-------------------- 我也很迷茫呢,求教 --------------------编程问答-------------------- 对JAVA一片迷茫 --------------------编程问答-------------------- li_tengfei 说得很好。 --------------------编程问答-------------------- 围观..... --------------------编程问答-------------------- 语言越高级越容易入门、工作机会越多、收入越低。语言越低级越难入门、从业人员相对少、但收入高。在高级语言中java相对难度高于.net。职位也较多,收入一般高于.net。做web开发的 比较多 --------------------编程问答-------------------- 呵呵,一样的迷惑 --------------------编程问答-------------------- 学习。。。。 --------------------编程问答-------------------- 8楼NB   学习了  谢谢! --------------------编程问答-------------------- 说的很对,学习了,目前在j2ee这条路上跌跌撞撞、、、 --------------------编程问答-------------------- 工作几年后就懂了 --------------------编程问答-------------------- 8楼总结的好啊 --------------------编程问答--------------------
引用 8 楼 li_tengfei 的回复:
Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:
1、掌握项目开发的基本步骤
2、具备极强的面向对象的分析与设计技巧
3、掌握用例驱动、以架构为核心的主流开发方法.........................................


粘贴党.........??? --------------------编程问答--------------------
引用 38 楼 zjwit 的回复:
引用 8 楼 li_tengfei 的回复:
Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:
1、掌握项目开发的基本步骤
2、具备极强的面向对象的分析与设计技巧
3、掌握用例驱动、以架构为核心的主流开发方法.........................................


粘贴党.......……


八楼牛,收藏了 --------------------编程问答-------------------- 把它看成是实现自己思想和设计的工具,就可以了 --------------------编程问答-------------------- 学会做人先,人做好了,啥技术都不再话下,技术总是在变,做人的道理还在那儿。 --------------------编程问答-------------------- 8楼  好贴! --------------------编程问答-------------------- 学习中,这些东西太让人头疼了 --------------------编程问答-------------------- 你需要的是指明你人生的方向,而不是java的方向,这里的人们无能为力,因为他们也在迷茫 --------------------编程问答-------------------- C Plus Plus  --------------------编程问答--------------------
引用 44 楼 nokiaisacat 的回复:
你需要的是指明你人生的方向,而不是java的方向,这里的人们无能为力,因为他们也在迷茫

我觉得楼主是想表达这个意思

java就是一技术,楼主绝对没有多么伟大,所以也只是靠Java混口饭吃而已....吃饭的工具吗,何必太在意.... --------------------编程问答--------------------
引用 8 楼 li_tengfei 的回复:
Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:
1、掌握项目开发的基本步骤
2、具备极强的面向对象的分析与设计技巧
3、掌握用例驱动、以架构为核心的主流开发方法

没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假……


说得好。。大有可取之处 --------------------编程问答-------------------- 受教了。。。。。 --------------------编程问答-------------------- 8楼威武 --------------------编程问答-------------------- 一直围观中···· --------------------编程问答--------------------
引用 3 楼 xiaotugege 的回复:
引用楼主 long419458281 的回复:
抛开一切看实质的思想在JAVA领域里我觉得不是很靠谱。至少对自己的人生不太好。。。

我很想知道你所谓的靠谱是啥,对你的人生那里不太好?
java太没含金量了?类似玩具?

井底之蛙!
看来你真的没怎么入门编程
我曾经问过华为资深的开发人员对这个问题的看法
他们都感到很惊讶!
最后的回答是:
说这句话的人还处于新手阶段
--------------------编程问答-------------------- 兄弟……投入到.NET平台的怀抱把。只要微软不倒台.NET就不会过时. --------------------编程问答-------------------- 吃飯的工具,沒有其它。 --------------------编程问答--------------------
引用 8 楼 li_tengfei 的回复:
Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:
1、掌握项目开发的基本步骤
2、具备极强的面向对象的分析与设计技巧
3、掌握用例驱动、以架构为核心的主流开发方法

没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假……


如果是自己写的你那么你就很牛X了。 --------------------编程问答-------------------- 关注 留个脚印~ --------------------编程问答-------------------- 写的真好 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答--------------------
引用 51 楼 yszn1986 的回复:
引用 3 楼 xiaotugege 的回复:
引用楼主 long419458281 的回复:
抛开一切看实质的思想在JAVA领域里我觉得不是很靠谱。至少对自己的人生不太好。。。

我很想知道你所谓的靠谱是啥,对你的人生那里不太好?
java太没含金量了?类似玩具?

井底之蛙!
看来你真的没怎么入门编程
我曾经问过华为资深的开发人员对这个问题的看法
他们都感到很惊讶!
最后的……


摆脱。。。华为的资深人士就能让你判断我还没入门编程?
最起码也让我知道你这个井外之蛙的区别嘛。。 --------------------编程问答-------------------- 学java,一个字:累。知识:杂、多。我太菜了 --------------------编程问答-------------------- 项目经验就是理解项目开发的基本过程,理解项目的分析方法,理解项目的设计思路,理解项目的实现技巧,理解项目的测试方法,理解项目中各种问题的解决方案!!!
--------------------编程问答-------------------- 企业要你任职就是看你能不能为它创造利益,就这么简单 --------------------编程问答-------------------- 8楼的兄弟说的太好了,赞一个,但是要把见到术语就像见到亲爹一趟,我估计我这辈子没啥戏了。。。 --------------------编程问答-------------------- 有人说的好,java就是个混饭吃的工具,相当于农民手里的锄头。 --------------------编程问答-------------------- 学习了
--------------------编程问答--------------------
引用 8 楼 li_tengfei 的回复:
Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:
1、掌握项目开发的基本步骤
2、具备极强的面向对象的分析与设计技巧
3、掌握用例驱动、以架构为核心的主流开发方法

没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如……

膜拜 --------------------编程问答--------------------
引用 8 楼 li_tengfei 的回复:
Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:
1、掌握项目开发的基本步骤
2、具备极强的面向对象的分析与设计技巧
3、掌握用例驱动、以架构为核心的主流开发方法

没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假……


+1 --------------------编程问答--------------------
引用 8 楼 li_tengfei 的回复:
Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:
1、掌握项目开发的基本步骤
2、具备极强的面向对象的分析与设计技巧
3、掌握用例驱动、以架构为核心的主流开发方法

没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假……


太精辟了,这是真正的高人,受教了
补充:Java ,  非技术区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,