提几个方向可以去尝试下:
1、订阅一些牛人的博客,这里面包括技术,学习,生活等等。不一定学技术,他们的经验都会让人受益匪浅。
我经常看的:
唐巧,IOS程序员。http://blog.devtang.com/
张宴,经历丰富,我看过不下3遍http://blog.s135.com/
春田冰河,人称伞哥,独特的个性以及高度自信的人,LISP语言鼻祖了。http://tianchunbinghe.blog.163.com/
lanceyan 严澜,大数据,算法,敏捷,架构无所不能http://www.lanceyan.com/
还有就不写了,再说估计可以写一篇文章了。
2、自己做一些东西,尤其是web开发的,自己不写个博客系统对得起自己吗(开玩笑)。不要使用以前使用过的技术,比如SSH,SSI,SPRING什么的,丢掉。试试别的新玩意,比如playframework(非常优雅的框架),mongodb(nosql的)。这样不仅可以提高技术学习兴趣,也可以开阔眼界。
1、沉淀很重要,在开发的过程中要积累经验
2、个人定位,每次看一些大公司招聘时的职位要求时,总是感觉他们要求的是内功,所以我觉得当定位自己要做后台开发或者研发时,应该好好的积累,可能接触不到多线程,但自己业余时可以接触,可以练手,因为我觉得刚工作的几年,是我们积淀的大好机会,但很多东西不是一个项目能给我们的
3、知识体系,一直认为单纯的一个项目开发收获不会太大,关键是项目在实际应用中遇到问题遇到瓶颈我们如何解决,我觉得这点的收获会比较大,因为在这个过程中会培养很多经验,比如对网络、服务器优化、数据库优化、高并发、负载等等的了解,我觉得只有形成这样一个体系,然后在实战中不断充实自己才是最重要的
我个人感觉如果重复的做一些coding,个人成长不大,一定是自己在下面不断给自己充电,其实SSH如果精通了并在项目中应用的非常ok也很了不起,一定要有自己精通的方面,如果什么都浅尝辄止,那么成长在哪里??
技术每时每刻都在更新,所有说我们做为码农就应该不断的学习,不能拘泥于工作的内容,更多的应该是自学,通过自己的努力去掌握更多的知识和技术,日积月累,总有一天会成为大牛的。比如你会ssh,可以去再学一学springmvc、mybatis等等,边学边思考,研究那种设计思想,会有很大收获的。曾经一个大神让我了解这些,我还没来得及看,给推荐给你:
JMS、JNI、compass、JFX、缓存技术、大数据存储
一起加油吧。
如果觉得CURD没进步,可以研究分布式系统,数据缓存,WEB 并发,memcached,ngnix
JMS,JTA, JMX都是可以研究的。数据库优化。
个人认为你最需要的是一个完整的知识体系,然后才能做到有的放矢.....
其实我个人比较推荐的是 java高手真经开篇的体系结构,还是比较认同的..当然这书名确实有点蛋疼,当然还可以多看看博客,资讯和业界动态,关注研究下时下比较热门的 NOSQL,Hadoop,分布式,redis,memcache,云计算等
其实你遇到的问题和困惑就是你进步的基础。
比如:ctrl-c、ctrl-v。代码真能这么写吗?想想看,如果你粘贴了10次代码,那你的bug是不是增长了10倍甚至引出更多bug?复制的代码意味着功能的相似,你有没有想过把这些相似的代码封装起来?这就涉及到了软件设计的问题。为什么你会不断地复制代码?是不是架构上有大的缺陷?
再比如:天天都是CRUD。业务逻辑代码就是CRUD吗?恰恰相反,业务逻辑代码应该是看不到CRUD的。为什么会这样?想想软件的分层架构就知道了。
所以,我觉得,追求新技术虽然重要,但要想提高的话,仅仅继续追求新技术是不够的。新技术能让你在短期内跟上形势,但是也会让你疲于奔命。作为Java程序员,我觉得你可能对开发Java应用软件最重要的东西,也就是面向对象思想了解得还不够多。如果在这方面下些功夫,会让你有长久的获益。
首先我觉得程序猿是这样想的,如果是要做一件重复的事,那就让我们的机器去做吧,如果机器现在还不能做,那我们就应该设计出一段code让机器去做这个重复而又枯燥的事。
我个人觉得,coding应该是这样一个过程:设计---》编码-----》测试。
把代码设计活。达到设计模式里面说的,把变动的东西和不变的东西分离开来。同时这里也要设计好数据结构,设计好算法。
编码只是按照思路去做,应该是水到渠成的事。
测试是一件非常麻烦的事,但是确实真正提高编程水平的一个环节。如果你能为你开发的某个模块功能设计比较全面的测试用例,并且都能通过,那么我感觉那应该是非常不错的,因为至少写出了没有什么bug的程序。