我也搞了几年JAVA了。因为一向懒惰,没有成为大牛,仅仅是一普通程序员,不爱玩社交站点。不爱玩微博,只有喜欢百度贴吧,潜水非常久了,手痒来给新人分享下从新手成长为老鸟的已见,也刷刷存在感,应该不比曝照差吧。



     首先初识语法的阶段,必需要学会怎么操作对象,操作if和for。操作list set map,然后是线程、IO和jdbc什么的。其余的。若是一时不理解,能够后边需要时再学。

这阶段完了,你能够写些能在控制台打印出来的小程序,锻炼下逻辑思维。也就是号称JAVASE毕业了,事实上只是是入门而已,假设要往WEB方向发展,这些倒是基本足够了。



     接下来要学HTML JSP SERVLET 数据库 JAVASCRIPT TOMCAT。目标,写出第一个动态站点,或许仅仅是个登陆功能,仅仅能展示下个人资料,但这是非常重要的一步。你要弄清楚的是。一个用户的点击产生的请求。是从哪里发起,哪里接收。哪里处理。哪里返回,你得理解浏览器和server的关系和分工,cookie和session,request和response。这个是个WEB开发的学习0基础阶段。这都是些JAVA诞生以来最原始的最官方的WEB开发技术,当然如今真正的项目非常少直接採用这些技术了,为了不断提高技术的易用性、开发效率和可维护性、可扩展性,无数开源项目都是在这些原始技术的基础上封装、改进。所以这个阶段不要盲目乐观地跑去找工作或者对实习挑三拣四。你会被打击到的。

好,初始阶段完毕,開始进入WEB开发的正题,首先是传说中的三大框架,struts hibernate spring成为熟练的增删改查程序猿是必须的,在这个阶段你还要理解为什么要用这仨而不是那些JSP SERVLET JDBC,你要体会到写MVC、 三层架构的优点。这个阶段不要轻易质疑三大框架的价值。或许刚開始你会认为麻烦。认为他们有时候是多此一举。一两年后回过头来你会认为少了这些框架你已经 非常难干活了。这个阶段还要避免的心态是能熟练地增删改查了,就认为敲代码只是如此,然后往简历上填个精通。这也是新手面试被批得体无完肤的原因之中的一个。假设
你学得好。这会应该能熟练地写个博客啊,小论坛啊之类的WEB项目了,也就是达到了就业的基本要求。

接下来就没有固定模式了,你的第一家企业对你的影响会非常大。我见识过烂企业是怎样毁新人 的。用着设计恶劣的架构,老掉牙的技术。不断地耽误新人的成长,有的员工在这样的企业一呆数年,思维已经全然被错误观点定型。深陷于公司业务和老系统中疲于 奔命,看似能解决这个问题,却无法给公司带来真正的进步,就像一个用了数年砍刀的人。就算再熟练,刀法再好,也打只是用枪的。假设离开了这个公司。恐怕非常难在 这个行业再立足。记得有个说法非常好,一个人用10年的时间反复做头一两年做的事,你的真实工作经验事实上还是一两年。烂公司的老员工就是如此。在这头一年里,定个标准吧,你应该能做到的有:

1、把一些经常使用的琐碎技术学会了,比方xml的作用和实际运用。怎样操作文件,怎样运用日志。怎样简化封装经常使用的工具类,比方日期操作、编码处理、分页模块等               等,这些小东西会占用你大量的时间去处理摸索。

2、把数据库用好。数据库不是会增删改查就能够了的,你要关注事务设置是否合理,是否有可能产生脏数据,是否要动用乐观锁悲观锁等等,关键数据出了错,不管是技术上还是业务上都是非常麻烦的事。

3、懂得什么是集群。什么是分布式。懂得怎么向别的系统发请求,交换数据,webservice。

4、假设你也写页面,你要会用JAVASCRIPT,不一定要非常深入,你能够用JQUERY取代,做到无刷新的页面操作以及AJAX请求。

第一年能达到这个程度,你绝对已经在平均水准之上了。

在我达到这个水平时,我有种似乎一切站点开发都不在话下的感觉,当然后来我非常快就发现了我还差得太远太远....这个阶段想面个高薪的工作还是非常难的,仅仅能说达到温饱线了。不用为柴米油盐发愁。

下一个阶段,你应该考虑你的代码质量了。

1、多线程和异步、并发的概念会忽然变得非常重要,由于在一个对性能有要求的系统里,是不会同意你把各种琐事都排着队一件件去办的。你不能老写些a方法调b方法再调c方法再调d方法然后返回的代码。

你開始想起有队列这样的东西,有runable这样的东西。你開始认为自己的代码高端起来了,和当年的增删改查程序猿有天差地别。但同一时候麻烦也来了,你開始遇到线程安全问题,尤其是当你的程序跑在一个多机环境而不是单机环境里的时候,你会对这些非常头痛。

对于这些问题,Jms技术是个非常有代表性的东西。当然并不像ssh那么经常使用。

2、你会发现数据库性能实在不行。出于不甘现状。或者赶时髦,你该去了解nosql了。memcached redis mongodb,眼花缭乱,没关系。试着用用,能非常好地缓解mysql之类关系数据库的压力。

3、出于公司某些业务须要,你可能会钻研一个特定技术领域。比方全文搜索技术,lucene\solr,比方工作流jbpm。比方权限系统,单点登陆之类的,又或者某些特定业务领域的算法研究。这些是你的加分项。

4、你開始发现你的代码非常乱。久了以后自己都看不懂。反复的。难以重用的代码堆积如山,不想维护。BUG百出。于是你要開始重视设计模式。合理地改造下自己的代码习惯,不再被僵化的SSH。MVC三层架构束缚住。

5、Google和各种资料是你进步的动力,极少再遇到必须请教别人才干解决的问题。假设你这个阶段还老是问别人,你的技术生涯也就快到头了。



这个阶段,假设你的交际和自我推销能力不是太差,你的收入将是白领水平。至少接近了。



我 认为多数程序猿在工作多年之后都能达到这个水平。有的人仅仅须要两年,有的人却要用上五六年。在这个阶段落伍的人,有的是出于天赋和思维所限。有的是出于对 技术缺乏热情,有的是出于工作内容的制约。

等到年近中年,再也拼只是春节轻人,被淘汰出局,仅仅能在自嘲为屌丝和码农的无奈中黯然转行。

这是个非常重要的分水龄,你能不能继续进步,能不能在30岁以后继续从事技术工作,能不能在公司里独当一面,我认为就看你能不能超越这个阶段了。我前面提到的烂公司里的工作数年的项目经理,连这个层次都还没达到...



接下来又是个全新的阶段。

1、你要读读优秀开源项目的源代码,你要搞懂一些当年不懂的基础知识。你開始理解thinking in java的精髓,你能写一些底层的代码。有时还会认为自己封装的比某些开源工具更好用更简单。

2、WEB的难点和重点永远都在于性能、负载能力上,而如今网络的发达造成了数据量和操作密度的大大上升,硬件却没有对应的进步。你得试着更好地运用很多其它的server来协同工作。从WEB端到服务端到数据库。全都须要集群,须要分布式,须要合理的控制数据的流向,掌握好站点上下。一大堆机器的平衡。找出性能的瓶颈,找出稳定性和安全性的瓶颈,硬件出现问题,第三方技术出现错误,将被当成家常便饭融入到你的系统和代码里细致考虑。

3、開始认为方案无比地重要,一将无能累死千军将不断应验,一个不好的设计,一个不好的方案,会让一群优秀的程序猿工作成果大打折扣。你要关注架构知识,不能再满足于SSH三层架构究竟。领域驱动设计,面向事件开发。敏捷开发等等一系列的思想在关键时刻能决定你项目的生死,这个阶段不再有标准范例让你照抄,你仅仅知道思想和原理,实践却须要自己不断尝试和改进。

4、多 关注各种杂七杂八的开源技术。有些你可能前面已经接触过了。和通信有关的,和集成开发环境有关的。和架构有关的。各个领域你都应该能信口说上几个主流技 术,尽管你可能仅仅是听说过,了解。但关键时刻你得知道怎样去选择技术,并高速掌握它。你还会去考虑尝试下别的语言,这里不是说转向什么C++ C#之类的,那和JAVA程序猿不相干,我说的是一些执行于JVM之上的语言。比方scala和groovy。初识他们时你会认为java真的老了。但当你回到一个综合性的大型项目中。又会认为java积累下来的整个体系技术是如此完好,就像一个工业化标准一样。

你能把这个阶段实践好,胜任项目经理。乃至中小公司的技术总监都是能够的。



     不知不觉写了这么多了。以上是我个人眼里的一般向JAVA EE发展线路,限于篇辐也不全面。实际个人成长路线可能由于工作内容的不同差异会非常大,有的人偏向了底层研究,有的人偏向了业务需求设计。有的带有浓重的行业色彩,并且技术之外,还有非常多知识也非常重要.w做JAVA没有轻松的方向,但一个对技术抱有兴趣的人,走到这一步时,仍然会对开发抱有热情,想要写出好的项目。纯为了生计而工作的程序员是走不到这一步的。



     暂且收手,希望以上能让J8的新人们了解将来要面对的大致状况。同一时候也抱着打击下小朋友们幼小心灵的邪恶心理就此按下发表button。

能完整看完的同学,在此表示钦佩。我想当年的我也未必能看完这样的又臭又长的叙述...

     本文转自百度贴吧。仅供学习和參考。

Java学习之路(转)的更多相关文章

  1. 新篇章之我的java学习之路下

    昨天写下了人生的第一篇博客,今天接着写我的java学习之路有关开发及框架的学习过程. 想要学好java语言,只学习一些java的基本语法对实际开发中的用处还是不大的,所以我们还要掌握一些有关javaW ...

  2. java学习之路之javaSE基础2

    java学习之路之javaSE基础2 所有的代码都是引用他人写的. 1.逻辑运算符 //&,|,^,! //int x = 10; //5 < x < 15 //x > 5 ...

  3. java学习之路之javaSE基础1

    <h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...

  4. Java学习之路(转)

    Java学习之路(书籍推荐)   一.基础类 1.<Thinking in java>(阅读2遍),入门第一位是建立正确的概念 2.<Core Java>这本书更贴近实践,更多 ...

  5. JAVA学习之路与大家分享

    这是我四年以前总结的JAVA学习之路,希望对初学者或想从事JAVA开发的人有帮助. 本人是软件工程专业出身,先后学过C.C++.JAVA.VB.delphi等等开发语言以及网络相关管理技术.哎,好久不 ...

  6. Java 学习之路 -- day00

    Java 学习之路 -- day00 Typora 快捷键操作 标题:#+空格 2. *斜体* 3. **加粗** 4. **斜体加粗*** 5. ~~删除线~~ 6. > 引用 7. ···分 ...

  7. (转)如何学习Java技术?谈Java学习之路

    51CTO编者注:这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典.如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领 ...

  8. Java学习之路:不走弯路,就是捷径

    1.如何学习程序设计? JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用.有编程高手认为,JAVA也好C也好没什么分别,拿来就用.为 ...

  9. java学习之路

    先来说一说我和it之间的不解之缘.准确来说,我接触it是从大二是我买的第一个手机开始的(国产的,展讯平台,能够运行mrp虚拟机),那时候还没有智能手机,或者说还不够普及,总之就是买不起.一次偶然的机会 ...

  10. 【分享】Java学习之路:不走弯路,就是捷径

    1.如何学习程序设计? JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用.有编程高手认为,JAVA也好C也好没什么分别,拿来就用.为 ...

随机推荐

  1. poj2492 A Bug's Life(带权并查集)

    题目链接 http://poj.org/problem?id=2492 题意 虫子有两种性别,有n只虫子,编号1~n,输入m组数据,每组数据包含a.b两只虫子,表示a.b为不同性别的虫子,根据输入的m ...

  2. 2011年入侵 Kernel.org 的黑客被捕 面临10年监禁

    2011年中旬,Linux内核官网kernel.org遭到黑客入侵,攻击者植入了rootkit Phalanx,并在服务器上设置了SSH后门,kernel.org为此关闭了三周多时间.官方表示将会公开 ...

  3. [CodeForces - 848B] Rooter's Song 思维 找规律

    大致题意: 有一个W*H的长方形,有n个人,分别站在X轴或Y轴,并沿直线向对面走,第i个人在ti的时刻出发,如果第i个人与第j个人相撞了 那么则交换两个人的运动方向,直到走到长方形边界停止,问最后每个 ...

  4. 牛客练习赛2 A - Contest

    链接:https://www.nowcoder.com/acm/contest/4/A来源:牛客网 题目描述 n支队伍一共参加了三场比赛. 一支队伍x认为自己比另一支队伍y强当且仅当x在至少一场比赛中 ...

  5. UVA - 10815 - Andy's First Dictionary STL

    Andy, 8, has a dream - he wants to produce his very own dictionary. This is not an easy task for him ...

  6. DHTML和HTML有什么区别?有什么不同

    DHTML和HTML有什么区别?有什么不同 首先Dynamic HTML是一种制作网页的方式,而不是一种网络技术(就像JavaScript和ActiveX):它也不是一个标记.一个插件或者是一个浏览器 ...

  7. [UOJ424]count

    虽然题目不难,但是这应该是我第一次在考场上成功拿到计数题的不算低的分数,值得记录 如果对序列处理出$i$后面第一个比它大的位置$r_i$,那么两个序列同构的条件就是$r_i$都相同,而$r_i$构成一 ...

  8. 函数栈溢出引起的段错误segmentation fault

    遇到了一个奇怪的问题: 有一个回调函数中发生了段错误,但经检查也没有什么明显的错误,然后用排除法一点一点屏蔽,最后定位在一个函数里出错,但这个函数没什么明显错误.最后把入口参数改为引用传递就不报错误. ...

  9. Java混剪音频

    分享一个之前看过的程序,可以用来剪辑特定长度的音频,将它们混剪在一起,思路如下: 1.使用 FileInputStream 输入两个音频 2.使用 FileInputStream的skip(long ...

  10. 【洛谷】3953:逛公园【反向最短路】【记忆化搜索(DP)统计方案】

    P3953 逛公园 题目描述 策策同学特别喜欢逛公园.公园可以看成一张N个点M条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口,N号点是公园的出口,每条边有一个非负权值, 代表策策经过这条 ...