热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一个本科毕业生的Java学习之路

转自:http:my.oschina.netflynewtonblog7770如有谬误请见谅声明:我是一个普通本科生以下仅个人见解,如有

转自:http://my.oschina.net/flynewton/blog/7770

如有谬误请见谅 
声明:     
     我是一个普通本科生 
     以下仅个人见解,如有反对意见,勿人肉我     

     觉得写代码是软件工程师中混得最锉的人请绕过 
     觉得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.恒心。(中途放弃你将一事无成) 

 


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 一:什么是solrSolr是apache下的一个开源项目,使用Java基于lucene开发的全文搜索服务器;Lucene是一个开放源代 ... [详细]
  • mysql+全文检索设计,基于sphinx+mysql全文检索架构设计.doc
    基于sphinxmysql全文检索架构设计.doc还剩2页未读,继续阅读下载文档到电脑,马上远离加班熬夜!亲,喜欢就下载吧& ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 本文总结了初学者在使用dubbo设计架构过程中遇到的问题,并提供了相应的解决方法。问题包括传输字节流限制、分布式事务、序列化、多点部署、zk端口冲突、服务失败请求3次机制以及启动时检查。通过解决这些问题,初学者能够更好地理解和应用dubbo设计架构。 ... [详细]
  • 14亿人的大项目,腾讯云数据库拿下!
    全国人 ... [详细]
  • Nexus3.0.0+Maven的使用(一)
    1、Nexus介绍Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问和部署在你所维护仓 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了Nutch相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
少少_LV
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有