热门标签 | 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.恒心。(中途放弃你将一事无成) 

 


推荐阅读
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 如何使用 `org.apache.tomcat.websocket.server.WsServerContainer.findMapping()` 方法及其代码示例解析 ... [详细]
  • 本文深入解析了通过JDBC实现ActiveMQ消息持久化的机制。JDBC能够将消息可靠地存储在多种关系型数据库中,如MySQL、SQL Server、Oracle和DB2等。采用JDBC持久化方式时,数据库会自动生成三个关键表:`activemq_msgs`、`activemq_lock`和`activemq_ACKS`,分别用于存储消息数据、锁定信息和确认状态。这种机制不仅提高了消息的可靠性,还增强了系统的可扩展性和容错能力。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 本指南详细介绍了如何在CentOS 6.6 64位系统上以root用户身份部署Tomcat 8服务器。系统环境为CentOS 6.6 64位,采用源码安装方式。所需软件为apache-tomcat-8.0.23.tar.gz,建议将软件下载至/root/opt目录。具体下载地址请参见官方资源。本指南涵盖了从环境准备到服务启动的完整步骤,适用于需要在该系统环境下搭建高性能Web应用服务器的技术人员。 ... [详细]
  • 该问题可能由守护进程配置不当引起,例如未识别的JVM选项或内存分配不足。建议检查并调整JVM参数,确保为对象堆预留足够的内存空间(至少1572864KB)。此外,还可以优化应用程序的内存使用,减少不必要的内存消耗。 ... [详细]
  • 在Java Web服务开发中,Apache CXF 和 Axis2 是两个广泛使用的框架。CXF 由于其与 Spring 框架的无缝集成能力,以及更简便的部署方式,成为了许多开发者的首选。本文将详细介绍如何使用 CXF 框架进行 Web 服务的开发,包括环境搭建、服务发布和客户端调用等关键步骤,为开发者提供一个全面的实践指南。 ... [详细]
  • Java能否直接通过HTTP将字节流绕过HEAP写入SD卡? ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
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社区 版权所有