0 0

深入学习java的困惑:3年开发,下一步学习的方向以及要做什么?20

楼主做java3年了,时间不长不短。职位么,因为跳槽多次,仍是普通程序员,关于跳槽频繁这一点,刚刚觉得非常不妥。
最近很长的一段时间,我对下一步的学习方向,或者说java的学习方向,充满了困惑。
困惑1:在工作上遇到的很多技术上的东西,都给我一种感觉----不做不知道,谁做谁都会。要做一个东西,或者遇到一个问题的时候,往往是用到第三方类库,这些东西一般做过也只能记个大概,代码是肯定记不住的,还是要现用现查;没做过的,在网上一查往往也能查出一堆,拿过来修修改改,80%以上的问题都能解决。除了这些,就是一些基本的代码,有一定基础都可以写的不差。
不知道是我接触的东西太少,还是本就是这样。如果是前者,烦请比我更明悟的人,来指点我一下。

困惑2:进一步学习的方向。因为在大多数时候都是面对困惑1里面的情况,而我觉得这些是肯定肯定不够的,就在想下一步应该怎样进步,学习什么。这也是本次提问的主要问题,对于一个3年经验的普通java开发,下一步的学习方向是什么?有没有较为清晰的归类,比如架构师、DBA之类的。
不得不承认,对于很流行的大数据、高并发,楼主缺少一些经验,1是接触的机会不多,2是此类工作大多需要工作经验。想过要自己学习,不过应该只能学到些皮毛。

工作接触的一些技术也不少了,比如nginx,memcached,mongodb,dubbo framework,InnoDB,linux等等一些暂时想不起的,但只通过工作和一些课外学习,也没有了解的很深入。也许是,我缺少一个可以更深入学习的工作?也许是,因为跳槽过多,没有一个稳定的业务方向,也就没有遇到更深入的问题?

总之,我最近是挺困惑,脑子也有点乱。希望各位资深大牛来给些建议,和我一样困惑的程序员们,也一起来讨论

2014年6月23日 18:13

10个答案 按时间排序 按投票排序

0 0

采纳的答案

在java领域摸爬3年之际时,跟你有很多共鸣,
当年,杂七杂八的各种开源第三方工具类用了不少,广而不精,
当年,也纠结如何提升自己, 纠结该如何走下去。


我想继续做技术,于是我问了自己几个问题:

1.既然既然会了很多各种各样的工具,是否对工具的使用有自己的总结?

于是,我开始写博客,记录自己的学习成果,
写一些工具的测试代码,以便以后使用时,拿起来就用

2.工具的使用都整理了,那么是否整合出自己的一套开发框架?
然后我自己就整合了strut2 + spring2.5 + ibatis,
随着技术的发展,我重新整合了velocity + springmvc + spring3 + mybatis
包括工程架构:maven结构的工程,优化打包方式(轻松区分本地、测试、上线环境)
使用代码检查工具:Findbugs CheckStyle
做到团队代码风格基本一致。


3.既然整合开发机构,是否能有套生成器,生成基本代码(增删改查)?
然后我就使用基础的jdbcapi读取数据库表信息,使用velocity 模板引擎,开发了一套生成器, 给团队工作效率带来了质的提高

4.以上都有了,如何做分层开发,动静分离?
然后,我就将架构中模板引擎部分velocity 去掉, 直接使用html, 动态数据使用异步获取,动态数据服务端返回json, 页面开发人员(会css,js)和服务端开人员各司其职,再一次提高了开发效率


4.当访问量上来的了,发现页面动态数据访问还是有些慢?
然后在不做负载均均衡的情况下, 学了jvm的内存机制和gc调优,最大的优化单机能力

再然后。。。先省略,看到这里我打算写一篇小博客^_^





2014年6月24日 10:17
0 0

Java需要学的大体分为两部分基础部分JavaSE  以及企业应用部分javaEE  Javaee是应用最广泛的,首先要学会的就是Javase基础部分不能操之过急,另外如果自学学不进去的话,还是建议你去培训一下我朋友就是在华清远见学习培训的最后学的技术水平和就业薪资都是相当好的,他还整理了一些他面试的题http://javaee.3g-edu.org/?lbj有时间的可以看下

2017年6月21日 12:04
0 0

我也很困惑,只是会用。

2014年7月04日 14:46
0 0

技术是有瓶颈的,这不可避免。尝试去做一些管理吧。

2014年6月26日 20:58
0 0

除了非常赞同一楼的答案外,我还想到另一个道路。
公司有一个系统,由客户填报数据并能查询和汇总。客户早期有9张数据填报报表,于是就有了9个持久化对象和数据库的表,并增加了日志记录*9,后来变成了43张,于是开发团队就拼命补上了后面的表,于是变成43个对象和表,后来系统运行了5年,每年有200w数据,于是每年填报的时候就要从近千万数据中找几十万数据,非常慢。
问题出在设计上,应用系统的设计是综合考虑客户的变化、系统的效率、开发人员的能力、可接受的成本和进度、以及很多因素的综合体,充分考虑和平衡才能得到比较理想的结构和灵活性,现在每年如果有报表需要修改列,于是要很多判断当前年是否有这一列,并且大量页面需要修改,如果能充分考虑这些变化点,折中出现一些可配置和自动生成的表,可以大大缓解系统现有最严重的问题。
所以这就是我指的另一条道路,设计。设计不是简单的业务分析师成果的再现、把用户的流程文件对象化,需要思考和经验,不是说客户说不变就不变,而是真正考虑一项变化的发生概率和带来的消极积极影响。

2014年6月25日 14:57
0 0

同感,感觉做开发很累啊,有时候闲下来不知道要干什么,做工作的时候又感觉在重复一些事情,我觉得参考楼下的建议,去考系统分析师的证,这样在过程中可以学到很多东西,要不太茫然了

2014年6月24日 08:30
0 0

楼主我和你情况差不多,始终停留在用层,都是为了解决问题而用的,虽也坐了有几年,然进步小很小,那些在项目中用到的新技术,一个新人也能很快掌握。而几年来成长的不是技术而是对业务逻辑的熟悉……说实话这不是我想要的,坐2年成长等于2个月,为何如此?1.我也不知道我该怎么做,2.大量时间都在业务逻辑上。但是我现在似乎找到了方向,希望能给楼主点帮助或启发:现在我们学习的是高级语言,为何不去探索下高级语言怎么来的呢?难道没这好奇吗?我们为何不自顶向下探索一下呢?当然你要做好准备,这是修的内功,不是象会用那样立即见效,其间辛算谁做谁知道,而且别人不一定认同你。我觉定走下去?你呢?仅作参考。

2014年6月24日 08:10
0 0

一个既简单又不简单的方法,逼迫自己用开源软件的设计思路,代码规范,变量命名习惯去写自己项目,即便是业务导向的系统。久而久之,对于再高深的东西,都不杵了。

2014年6月24日 02:53
0 0

假如没有一个明确地方向,试着考一下系统分析师的证,过程中地一些科目也可以当做程序员地指导方向。考证地过程中,凡是涉及到自己从未实现过的算法,都使用Java实现一遍,自己建一个Git账号,保存好这些资源。
5年Java开发,共勉。

2014年6月24日 00:26
0 0

楼主用到的技术不少,但是光停留在表面的应用还不够,最好能了解一下各个技术的原理,我记得我上大学的时候,老师就说学编程,先把Linux源代码读一遍。所以对java技术要知其所以然。还有设计模式也很有用。

2014年6月23日 21:34

相关推荐

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    完全站在没有编程经验读者的角度,手把手教会读者学习Java 配16小时多媒体教学视频,高效、直观 一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    完全站在没有编程经验读者的角度,手把手教会读者学习Java 配16小时多媒体教学视频,高效、直观 一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、...

    我一年Java之路的回顾,反思以及展望

    总之,学习Java编程是一个循序渐进的过程,需要克服初期的困惑,选择合适的学习资源,善用社区支持,不断实践并反思。通过一年的辛勤努力,作者在Java的道路上迈出了坚实的一步,他的经验对后来者具有宝贵的启示。

    Java解惑(中文版)_java_java解惑_solve65p_

    《Java解惑(中文版)》是一本专为Java初学者设计的学习资料,旨在帮助读者解答在学习Java过程中遇到的各种困惑。"solve65p"可能代表这本书包含65个问题或主题,每个都深入浅出地进行了讲解,旨在解决初学者在编程...

    JAVA 解惑 java经典

    Java编程语言自1995年发布以来,一直保持着广泛的应用和持续的热度。它以其“一次编写,到处运行”的跨平台特性,成为了企业和...通过深入学习这些内容,开发者可以提升自己的Java技能,更好地应对实际项目中的挑战。

    学Net还是学Java.doc

    - Java的学习周期较长,需要5个月,但长期来看,深入学习Java的开发者更具竞争力。 - .Net有丰富的中文资料,适合中文阅读者,而Java的资料多为英文,更适合英语基础好的学习者。 5. **技术架构与生态系统**: -...

    2010年-Java解惑(中文)

    - 类与对象:Java是一种面向对象的语言,理解类的定义、对象的创建以及封装、继承和多态是学习Java的基础。 - 数据类型:Java分为基本数据类型和引用数据类型,理解它们的区别和用法至关重要。 - 控制流:包括...

    2021最新java入门教程下载借鉴.pdf

    总之,选择合适的资源,结合实时教学,并注重基础概念的掌握,辅以实践项目,是学习Java的有效途径。对于想要在Java领域深入发展的初学者来说,不断学习和更新知识,适应技术的发展,是非常重要的。

    Java解惑

    Java编程语言自1995年发布以来,一直保持着旺盛的生命力,广泛应用于企业级应用、移动开发(尤其是Android)以及大数据处理等领域。然而,随着技术的深入,开发者们经常会遇到一些令人困惑的问题。"Java解惑"这个...

    一个牛人给java初学者的建议

    Java是一种广泛使用的面向对象编程语言,...随着经验的积累,可以深入学习Spring框架、MyBatis等企业级开发工具,进一步提升开发效率。总之,Java的学习是一段持续的过程,不断探索和实践将使你在这个领域越来越精通。

    Java解惑(整理版本)

    《Java解惑(整理版本)》是一篇针对Java编程语言常见问题和疑惑的详细解析文章。博主通过深入探讨Java源码和使用工具的角度,帮助开发者解决...通过深入学习和实践,开发者能有效解决Java编程中的困惑,提升编程技艺。

    Thinking IN JAVA 4

    通过以上介绍可以看出,《Thinking in Java》第四版不仅是一本适用于初学者的Java入门书籍,同时也为有一定编程基础的开发者提供了深入学习Java语言的机会。无论是作为自学指南还是培训教材,本书都极具价值。

    韩顺平 java课件

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。它的设计理念是“一次编写,到处运行”,这意味着编写好的Java代码可以在任何支持Java的平台上运行,无需重新...

    JavaTest:一个java测试,因为anli5005不懂Java

    这对于深入学习和理解Java语言非常有用。 6. **构建脚本**:可能包含Maven的pom.xml或Gradle的build.gradle文件,它们描述了项目的构建过程和依赖关系。通过运行这些脚本,anli5005可以自动编译、打包和运行项目。 ...

    Java程序员上班那点事儿

    - **求职者应“知己”**:了解自己的优势和兴趣所在,专注于某一领域的深入学习和发展。例如,如果对Java有兴趣并希望从事相关工作,那么应该重点提升Java相关的技术和实践经验,而不是盲目追求技能的全面性。 - *...

    Synnex Java面试题 2018

    这份2018年的Synnex Java面试题集包含了多个常见问题,涵盖了基础语法、面向对象编程、集合框架、多线程、异常处理以及JVM等方面。下面我们将详细探讨这些知识点,以帮助理解和准备类似的面试。 1. **Java基础** -...

    保罗·戴特尔,哈维·戴特尔 Java大学教程(第十一版) 答案 Java How to Program, 11e

    《保罗·戴特尔,哈维·戴特尔 Java大学教程(第十一版)》...《Java How to Program, 11e》的解答部分是学习过程中不可或缺的参考资料,它提供了对书中练习题的详细解析,帮助读者巩固所学知识,解决学习中遇到的困惑。

Global site tag (gtag.js) - Google Analytics