最近很长的一段时间,我对下一步的学习方向,或者说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调优,最大的优化单机能力
再然后。。。先省略,看到这里我打算写一篇小博客^_^