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

问题描述

楼主做java3年了,时间不长不短。职位么,因为跳槽多次,仍是普通程序员,关于跳槽频繁这一点,刚刚觉得非常不妥。最近很长的一段时间,我对下一步的学习方向,或者说java的学习方向,充满了困惑。困惑1:在工作上遇到的很多技术上的东西,都给我一种感觉----不做不知道,谁做谁都会。要做一个东西,或者遇到一个问题的时候,往往是用到第三方类库,这些东西一般做过也只能记个大概,代码是肯定记不住的,还是要现用现查;没做过的,在网上一查往往也能查出一堆,拿过来修修改改,80%以上的问题都能解决。除了这些,就是一些基本的代码,有一定基础都可以写的不差。不知道是我接触的东西太少,还是本就是这样。如果是前者,烦请比我更明悟的人,来指点我一下。困惑2:进一步学习的方向。因为在大多数时候都是面对困惑1里面的情况,而我觉得这些是肯定肯定不够的,就在想下一步应该怎样进步,学习什么。这也是本次提问的主要问题,对于一个3年经验的普通java开发,下一步的学习方向是什么?有没有较为清晰的归类,比如架构师、DBA之类的。不得不承认,对于很流行的大数据、高并发,楼主缺少一些经验,1是接触的机会不多,2是此类工作大多需要工作经验。想过要自己学习,不过应该只能学到些皮毛。工作接触的一些技术也不少了,比如nginx,memcached,mongodb,dubbo framework,InnoDB,linux等等一些暂时想不起的,但只通过工作和一些课外学习,也没有了解的很深入。也许是,我缺少一个可以更深入学习的工作?也许是,因为跳槽过多,没有一个稳定的业务方向,也就没有遇到更深入的问题?总之,我最近是挺困惑,脑子也有点乱。希望各位资深大牛来给些建议,和我一样困惑的程序员们,也一起来讨论

解决方案

在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调优,最大的优化单机能力再然后。。。先省略,看到这里我打算写一篇小博客^_^
解决方案二:
我也很困惑,只是会用。
解决方案三:
技术是有瓶颈的,这不可避免。尝试去做一些管理吧。
解决方案四:
除了非常赞同一楼的答案外,我还想到另一个道路。公司有一个系统,由客户填报数据并能查询和汇总。客户早期有9张数据填报报表,于是就有了9个持久化对象和数据库的表,并增加了日志记录*9,后来变成了43张,于是开发团队就拼命补上了后面的表,于是变成43个对象和表,后来系统运行了5年,每年有200w数据,于是每年填报的时候就要从近千万数据中找几十万数据,非常慢。问题出在设计上,应用系统的设计是综合考虑客户的变化、系统的效率、开发人员的能力、可接受的成本和进度、以及很多因素的综合体,充分考虑和平衡才能得到比较理想的结构和灵活性,现在每年如果有报表需要修改列,于是要很多判断当前年是否有这一列,并且大量页面需要修改,如果能充分考虑这些变化点,折中出现一些可配置和自动生成的表,可以大大缓解系统现有最严重的问题。所以这就是我指的另一条道路,设计。设计不是简单的业务分析师成果的再现、把用户的流程文件对象化,需要思考和经验,不是说客户说不变就不变,而是真正考虑一项变化的发生概率和带来的消极积极影响。
解决方案五:
同感,感觉做开发很累啊,有时候闲下来不知道要干什么,做工作的时候又感觉在重复一些事情,我觉得参考楼下的建议,去考系统分析师的证,这样在过程中可以学到很多东西,要不太茫然了
解决方案六:
楼主我和你情况差不多,始终停留在用层,都是为了解决问题而用的,虽也坐了有几年,然进步小很小,那些在项目中用到的新技术,一个新人也能很快掌握。而几年来成长的不是技术而是对业务逻辑的熟悉……说实话这不是我想要的,坐2年成长等于2个月,为何如此?1.我也不知道我该怎么做,2.大量时间都在业务逻辑上。但是我现在似乎找到了方向,希望能给楼主点帮助或启发:现在我们学习的是高级语言,为何不去探索下高级语言怎么来的呢?难道没这好奇吗?我们为何不自顶向下探索一下呢?当然你要做好准备,这是修的内功,不是象会用那样立即见效,其间辛算谁做谁知道,而且别人不一定认同你。我觉定走下去?你呢?仅作参考。
解决方案七:
一个既简单又不简单的方法,逼迫自己用开源软件的设计思路,代码规范,变量命名习惯去写自己项目,即便是业务导向的系统。久而久之,对于再高深的东西,都不杵了。
解决方案八:
假如没有一个明确地方向,试着考一下系统分析师的证,过程中地一些科目也可以当做程序员地指导方向。考证地过程中,凡是涉及到自己从未实现过的算法,都使用Java实现一遍,自己建一个Git账号,保存好这些资源。5年Java开发,共勉。
解决方案九:
楼主用到的技术不少,但是光停留在表面的应用还不够,最好能了解一下各个技术的原理,我记得我上大学的时候,老师就说学编程,先把Linux源代码读一遍。所以对java技术要知其所以然。还有设计模式也很有用。

时间: 2024-08-03 19:08:32

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

新手学习JAVA的困惑

问题描述 本人两个星期前开始学习JAVA的,看的是<JAVA从入门到精通>这本书,也在网上看了很多视频,在看书和看视频当中也能理解启动的意思和语句,但是自己想不看书写代码就提笔忘字...根本不知道从什么地方着手,请大牛赐教~我该怎么办呢? 解决方案 解决方案二:典型的练的少,计算机是一门实践性科学,还是要多敲代码,在理解理论知识的基础上,多做实践,熟能生巧.解决方案三:同是新手,感觉多混混论坛也会有很多收获的解决方案四:刚过来肯定会难过点的,熬过去了,就差不多了,多敲代码解决方案五:多找项目.

学习JAVA中面临的困惑!前辈教教我!

问题描述 我先说下我的情况:我学习Java有近一年时间.学习了Java基础,也能做一些小的程序.然后我就学习了JavaEE,主要通过视频学习的,其中熟悉JSP,Servlet,Struts2,Hibernate,Spring,Ajax!必须严重说明下:我学习了JavaEE,但是我没有用它做过一个网站,只用asp做过,主要原因:找不到很好的视频!谁有可以提供下!qq:1632703975我现在的情况是:我感觉我Java的基础没学好,JavaEE也没学好!但是一看书又都知道!我不知道该怎么深入下去!

java-求助!我想系统的学习Java

问题描述 求助!我想系统的学习Java 我是新手 我想系统的学习Java,请问谁知道下载地址或者给我QQ邮箱:6225358@qq.com谢谢 解决方案 这么巧啊,我准备结合案例系统的写一个java web开发教程,有兴趣的话关注我的博客.现在我的博客一篇文章都没有,不过,今天我就开始写第一篇文章.你关心什么问题?前台html div+css都了解吗? 解决方案二: 自己去了解吧,java基础,jspssh框架... 解决方案三: 哥们给你个中肯的意见,你可以去传智博客下载学习基础视频资料,看看

《Android应用开发攻略》——1.2 学习Java语言

1.2 学习Java语言 1.2.1 问题 Android应用采用Java编程语言编写,然后转换为Android自有的类文件格式--DEX.如果你不知道如何用Java编程,就会觉得编写Android应用非常困难.1.2.2 解决方案 学习Java的资源很多,其中大部分都能够传授你所需的知识,但是在这里要提醒你,有些API类在Android开发中无法使用,请避开与表1-1左列的主题相关的资源. 1.2.3 讨论 下面是一些有关Java编程的书籍和资源: David Flanagan所著的<Java

学习java软件开发,最好要用什么系统来练习啊,xp 还是vasta ???

问题描述 学习java软件开发,最好要用什么系统来练习啊,xp还是vasta??? 解决方案 解决方案二:都一样,java嘛,跨平台,用linux也无所谓解决方案三:xp,我两个系统都用过了,最后还是选择xp.解决方案四:vasta!!!楼主自己开发的系统??大多数人都是在XP上开发的,如果有条件在Linux最好(个人简历个可以写熟悉Linux编程了<玩笑,不是Shell编程>)解决方案五:都可以学这个好像不看系统,就看你用的软件和版本了.解决方案六:dos解决方案七:这可没个标准哈.有XP用

学习困惑-我自己在学习java中的 菜雀

问题描述 我自己在学习java中的 菜雀 有好的学习java反射机制的视频么 是应该先学习html+css+js 还是先学slq数据库呢 都有学一点不知道先把那个先学好更好??? 解决方案 把javaSE学好了,再考虑其他的吧,html+css+js只是做前端的.属于前台,学完javaSE再学sql再学html+css+js吧. 解决方案二: 先学习基础 基础最重要 解决方案三: 要注重基础 很多东西想是想不出来的,要实践 当你真正运用的时候就逼着自己学习 那时候就会了 人的潜能是无限的 祝学习

JAVA学习(一):Java介绍及其平台、开发环境的配置与搭建

Java介绍及其平台.开发环境的配置与搭建 1.Java的介绍 Java是一种面向对象的编程语言,具有跨平台.可移植.分布式.简单.可扩展等诸多特性.Java可以进行桌面应用.Web应用.分布式系统及嵌入式等应用程序的开发. Java包含3个不同版本,即J2ME/J2EE/J2SE(微缩版/企业版/标准版). 2.JDK的下载与安装.配置 (1).JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

女孩子学习JAVA好吗?有女女么

问题描述 干客服做了三年昨天上午脑子锈逗了上午提下午就离职了我现在真心想学习一门技术属于自己的请问大师们,女孩子学习JAVA好吗? 解决方案 解决方案二:女人即使是长得漂亮,也要有手段获得漂亮.我觉得,个人强大才是最好的选择.具体怎么使自己犀利霸气又不测漏,那得看你的追求了,懒乐耕锄还是君临天下,都一样是人生的写照.解决方案三:中学时,我是代数课代表同桌是个女生,几何课代表曾几何时,我一直困惑,作为一个女生怎么能把几何学得那么好--(大多数女生没啥方向感,可以上下左右,而不可以东南西北)所以,我

java-关于学习Java的电脑配置

问题描述 关于学习Java的电脑配置 网上看到一款组装的笔记本,配置如下:CPU英特尔赛扬J1800,内存4G,硬盘320G,不知用来学习java,以及数据库等行不行.请各位大神不吝赐教 解决方案 开个玩笑,如果影响你编程最大的因素是总是控制不住自己想玩游戏,那么买个老一点的电脑恐怕更好--电脑慢得都看不成电影也玩不了游戏了,学习编程还绰绰有余. 事实上,只要开机能进系统的计算机,都可以用来学习编程.当年我刚上大学学习编程的计算机不过是Intel Celeron 266MHz(0.266GHz,