找完工做了,offer不大不小,还算满意,我将个人学习经验写下,但愿给后来人一些启发,更但愿Java可以长盛不衰。
若有谬误请见谅
声明:
我是一个普通本科生
如下仅我的看法,若有反对意见,勿人肉我
以为写代码是软件工程师中混得最锉的人请绕过
以为Java就是用来作网站的请绕过
以为SSH就是*鸟的同窗培训学习的请绕过
第一阶段 熟悉语言
在这个阶段,你是这个领域绝对的新手,你什么都不懂,什么都不知道,没有别的办法,看书,写代码,请教大牛。
在这个阶段你须要深刻了解Java语言的语法,可以用它来作一些小东西,好比闹钟之类。而且随着你的学习深刻,对本身将来的学习方向作出选择,SE,EE,ME?选择好本身
的方向而后努力吧!个人方向是EE。
目标:扎实基础,对语法和整个Java的宏观有必定的理解,具有必定的编码能力。
第二阶段 熟悉开源框架
在这个阶段,你具有了必定的能力,也是最容易知足的时候,这个时候你须要不断看书不断学习,不然你将很难跨过此阶段成为大牛。
在这个阶段你须要对各类框架的使用很是熟悉,怎么样熟悉呢?不是看书,而是作项目,只要你想作,你会有一大把的时间和机会去作项目,运气好的话,money哦 -_-
目标:熟练使用各类开源框架,着重但不限于SSH,lucene等,积累必定的项目经验。顺利的话这个时候你将有一套***完整的知识体系****:
JS,AS,CSS
|
SSH等等各类框架
|
各类数据库(包括但不限于sql及其优化,存储过程,各类索引,分区......太多了)
千万必须必定保证能单挑20000代码量以上的项目
第三阶段 阅读源码
当你到这个阶段的时候,若是前几个阶段过渡得好,那么不出意外你已经能够告诉别人你有10w行代码量了,接下来呢?让咱们回归。
这是一个没有人帮助你的阶段,踏实地看源码,踏实地总结,在这个阶段的完结时候,你基本能总结出一本书那么厚的经验了。
这是一个很重要的阶段,由于前两个阶段的人将占绝大部分,你若是不经过此阶段,你将和他们毫无差异,无论你曾经付出多少努力。
目标:阅读JDK源码,了解各类类的设计及应用场景。阅读各类框架源码,了解各类开源框架的设计和实现原理(不要在网上看了一篇文章就说IOC,AOP精通了),最好能研究一下JVM(这个大公司很是看重),并可以反思本身作过的项目中,这些框架的缺点和你的改进的方法。
第四阶段 深刻架构
不得不说,这个时候你会很孤独,由于不多有人坚持到这个阶段,为了将来,你必须在这时寻找到一位和你至关的朋友,相互交流(thanks wkx-_-)。
这个时候你须要跳出"二手货交易市场",来到真正的互联网大型应用,这个时候你接触的不只限于语言,还有集群,分布式文件系统,分布式缓存,负载均衡LB,高可用性HA,主备拓扑应用,数据、页面、动态缓存,数据库分库分表,水平垂直扩展。那么很高兴的告诉你,这个时候你会发现之前的编译原理,操做系统原理,网络原理这些课终于有了用
武之地。
目标:对于大型网站架构具有很强的理论水平,而且能根据(模拟)测试结果判断系统瓶颈所在并进行性能调优(这点几乎可使你无敌于天下),熟悉但不限于如下名词:
ab,nmon,reverse proxy,lighttpd,apache prefork,epoll,sendfile,opcode,squid,memcached,LVS,hadoop,map/reduce,hessian ,OSGI,mysql master-slave,Oracle Standby Database,完了,太多太多了......
以上的1/5你一旦熟练掌握,那么,你将不弱于绝大部分研究生,并能和一位不懂Java的面试官时,让对方意犹未尽的跟你谈50分钟。
什么叫走完这四个阶段,前提是你的简历上应该有如下几句话:
10万行代码量
极高的压力承受能力
对技术的执着追求
不出意外(前提是我表达没问题),读完这篇文章,你们应该对于本身的课程安排和学习曲线有了必定的了解,并能分辨哪些东西对于本身很重要,这样你的学习之路将会平坦一些吧。
总结以下:
1.没有最强的英雄只有最强的玩家。(成天抱怨这很差那很差的同窗知道缘由了吧)
2.代码量是王道。(固然不是指反向生成的DAO)
3.完美的学习曲线。(公司比较注重你自学的学习曲线是否合理)
4.恒心。(中途放弃你将一事无成) mysql