微创业的网站终于做好了,6年来的技术学习生涯也可以算是里程碑式的告一段落了。在此片刻停留的间隙,回顾以往,梳理所学到的技能,总结下得到的经验、收获和领悟,让自己对自身的技术和状态有个清晰和条理的认知,方便自己对未来职业发展方向的选择,也希望自己得到的结论能给大家多一份借鉴。
对于Java技术生态圈而言,从下往上大致可分为以下几点:
1. Java SE基础本身(也称之为 Core Java):SE除了包含像Math等的一些提供基础运算的类外,其他大部分的类都用于构建更高级的框架或者工具包,如反射、代理、国际化、JDBC等,这些类作为基石被应用于大部分的Java框架中,可以说,掌握了这些类、知道这些类是用来干什么的,就等于掌握了那些框架的运行机制,如Spring的核心模块DI和AOP主要使用了反射、代理和XML解析的API来实现她的思想,而Hibernate则使用了JDBC等,而框架间的差异一般只在于该框架要实现的特有的业务逻辑代码,所以我个人更倾向于将Java SE称为Core Java,因为Core Java本身除了包括一些基本的Java语法语句外,她还包括很多像JNDI、JMX、JAXP、RMI等高级模块,具体请参见Java官网教材:http://docs.oracle.com/javase/tutorial/
2. Java EE:Java EE像其他框架一样,也是基于SE构建的企业版本,她与框架的区别在于定义了企业应用三层架构中每一层对应的技术模块,而我们用的最多、认知度最高的集中在Web层中的JSP、Servlet、Filter等,基本上可以说,掌握了Web层面的技术,可以解决大部分公司的开发要求,而像EJB、JSF等相对来说是比较冷门的技术点。有一点比较被忽视的是Web层与EJB的关系,因为他们之间是按照标准的三层结构来划分的(详情请参见:http://docs.oracle.com/javaee/6/tutorial/doc/bnaay.html ),既是说除了Web层可以使用EJB从数据库获取数据来做表示层的展示外,EJB的所有逻辑代码还可以用在C/S架构上。这是一个非常重要的分层思想,特别是在移动客户端越来越受重视的当下。虽然我们不经常使用EJB,但我们完全可以按照这个分层思想,严格定义Service 层 ,这样除了Web层可以直接调用这些API外,还可以在Service层上新增Web service层, 这样移动客户端就能通过XML获取数据,经过XML解析后就能以客户端适合的方式展现给用户,从而完全分离了不同的展示形式而复用了所有的业务逻辑!!!这是多么天才的想法 。甚至可以使用更纯粹的架构,让Web层也通过Web Service来获取数据,变为分布式的服务架构。Java EE的官网教材请参见http://docs.oracle.com/javaee/6/tutorial/doc/docinfo.html
3. Struts、Spring、 Hibernate等各种框架:前面已经提到,只要对Java和Java EE的各个模块和组件有足够了解,基本上可以从这些框架所要达到的作用推断该框架用到了哪些技术来实现她的机制,所以学习框架的重点在于这些框架所实现的思想,如Spring的核心模块实现了DI、AOP(像Spring MVC、Webflow、Security等虽然用在不同的领域,但也是使用SE跟EE的模块来实现相关机制的),Hibernate实现了ORM而Struts则实现了MVC。从框架的宏观角度看,每一种思想(或者说模式)都有至少两种不同的框架来实现,而后者的出现往往基于人们对前者在学习曲线、易用性、灵活性等方面的不足而开发,进而替代前者成为主流。另一种两种或多种框架并存的情况则出现在框架应用的领域差异上,比如Hibernate和MyBatis,更明显的出现在JS框架上,如EXT适用于做报表而jQuery则用来简化JS语法和构建基本的动态库等。
4. 除了以上提到的开发技术,对Subversion、TortoiseSVN、Eclipse WTP、 Tomcat、Junit等工具的了解和使用纯熟度也是不可缺少的因素。
Subversion:虽然单从它身上看不到对于补充开发技能的好处,但了解它是一个svn服务器及它所提供的服务,会让你对TortoiseSVN是什么、它提供了什么功能有一个较全面的理解。作为开发人员,不止需要知道怎么用,还得知道为什么,而知道为什么,往往就是调试程序过程中解决问题的关键;
Eclipse:一提到Eclipse往往让人联想到的是Eclipse Java EE版本,一般不会注意到Eclipse官网还提供Eclipse Java版本的下载。这两版本在使用领域上还是有很大区别的:Eclipse Java版本集成了Junit和Maven,一般用在C/S架构或者Jar包的开发上,既是说不提供Web开发所使用的Jsp、Javascript等插件的支持。像Spring核心包的开发就不需要使用Eclipse Java EE,而像Spring MVC等Web框架就明显需要Web插件的支持。如果Web应用需要用到使用Java版本开发的Jar包,那么Web开发人员既可直接将Jar包拷到工程lib下,也可以通过Maven将该Jar包导入工程,前提是已在Eclipse Java EE版本中安装了Maven插件并将Web应用转为Maven工程,这也是两个Eclipse版本的区别之一。通过将业务核心封装在Jar中并使用Eclipse Java开发,可以使开发人员集中在业务逻辑的实现上并编写大量的测试用例尽可能的提高代码覆盖率。相比之下,Web应用的开发人员则通过简单的核心Jar的API调用,集中精力做Web界面的展示和流程跳转,而不需要关系核心Jar是否有bug。
5. 架构:对DAO、Business logic、Value object、Deployment、Presentation和Architecture component各层有个清晰的认识可以制定出架构分明的系统,这是进阶架构师的基础。在拥有架构这大的知识体系后,再对23种经典的设计模式加以了解必然能设计出更优雅的应用架构。
对于前端技术而言,我觉得比较重要的是Javascript。Javascript语法和Ajax是所有JS框架的基础,而框架的存在性跟上述提到的Java框架基本相同。
以上涉及范围面比较广的学习历程让我体会到一个道理:编程语言的演化,都是以易用性为目的,让开发人员把精力集中在业务逻辑的实现上,所以语言的发展趋势是应用更简单、学习曲线更平缓同时又具备灵活性和扩展性,让开发人员能在短时间内上手并投入生产,违反这一规律的语言往往会随着时间推移淡出大众视野。
最后附上本码农的学习经历:
我是2007年毕业的,只是个专科生,莫有本科文凭,更不是从华丽丽的211、985学校出来。在校只学了些基础的计算机知识的我同样在毕业找工作时很彷徨,更没有丝毫的奢望说能找到编程的工作,第一份工做的是测试,凭借自己对技术的热爱用业余时间学习新知识,在学完J2EE的基本知识和Struts后终于找到了第一份编码工作,遗憾的是这份工作并没有使用任何主流框架。此后为了跟不同公司都拥有谈薪酬的筹码又不停的学习了Hibernate、Spring、Ant、Svn等,再后来基于扩展自身技能和知识面的需要学习了Maven、Eclipse、Tomcat详细配置等,再到为了更全面的了解Java和Java EE重温学过的模块并接触新模块,最后得到对于Java技术生态总体上的理解,得到的结论虽然与前人的总结大致相同,但通过自身走过来的路,无疑拥有更深刻的体会。6年过去了,虽然在职位上还没有质的提升,但完成的网站也是自己对过去努力的小小认可。在未来的路上,除了使原有技术再有一个层次的提升外,也希望把视野放在架构设计、性能调优、服务器集群设计、团队协调和管理等方面。
本文转载自开源论坛
http://www.xlinecode.com
分享到:
相关推荐
码农的草帽底下,是一颗充满创造力的自由不羁的头脑。 他们遵从最佳实践而痛恨陈规教条,他们欣赏天才而不迷信权威,他们喜欢思考而不轻易苟同。他们是技术人,却追求人文理想;他们敢于呐喊,说出自己的观点和...
《码农》杂志是图灵出版社会面向程序员推出的一份免费电子...通过阅读《码农》杂志第6期,程序员不仅可以更新技术知识,还能了解到行业的前沿动态,提升自己的专业素养,对于个人成长和职业发展有着积极的推动作用。
java码农技术体系归类总结
综上所述,《码农 2014新年特刊》不仅涵盖了程序员个人成长和发展的重要议题,还探讨了技术趋势和未来展望,旨在鼓励程序员们积极面对挑战,不断学习进步,同时也关注身心健康,以更加开放的心态迎接未来的机遇。
综上所述,“十年码农内功2023.7.2”这份资料可能是一个全面且深入的程序员成长指南,涵盖了从基础到高级的多个层面,旨在帮助程序员不断提升自己的专业能力和综合素养。通过阅读这份PDF,读者有望系统地学习和巩固...
【标题】: 一个阿里巴巴码农的六年回眸 【描述】: 本文讲述了作者作为阿里巴巴的一名程序员,从2005年至2012年六年间的个人成长与心路历程,涉及到入职、职位变化、项目经历以及技术学习等方面。 【标签】: 资料 ...
《码农》杂志是针对程序员和IT从业者推出的一份免费电子读物,旨在分享最新的技术趋势、实用的编程技巧以及行业内的深度洞察。第一期的发布标志着这个平台为程序员提供了丰富的学习资源和交流空间。 在《码农》杂志...
6. 文章中还包含了一些与网络安全相关的人物介绍和心得分享,比如讲述了一些女码农的经历,以及一位名为张文君的专家在与病毒斗争中的经验。 7. 最后,文章呼吁网络使用者们提高认识,不要因为自身对技术的无知而...
《码农》杂志是一本专注于IT技术和职业发展的出版物,其1-3期包含了丰富的信息,旨在帮助IT从业者提升技能,了解行业动态,以及解决实际工作中遇到的问题。每一期都可能涵盖多个主题,包括编程语言、软件开发、数据...
该文件包含了图灵社区出版的《码农》第一期到第四期的杂志。上面介绍了各种算法,访谈和IT行业的方方面面,致力于IT行业的可以看看。 码农的草帽底下,是一颗充满创造力的自由不羁的头脑。 他们遵从最佳实践而...
一个码农的毕生所学!笔记 & 教程。考研,就业,上学.语言篇,Android,C++,Java,JavaSc 一个码农的毕生所学!笔记 & 教程。考研,就业,上学.语言篇,Android,C++,Java,JavaSc 一个码农的毕生所学!笔记 & ...
图灵写给程序员的免费电子杂志《码农》,第三期,欢迎下载
总的来说,【简洁自适应个人码农主页源码】是一个适合初学者和经验丰富的码农的实用工具,它提供了一个无需编程技能即可快速搭建个性化主页的解决方案。通过学习和修改这个源码,开发者可以深化对HTML和CSS的理解,...
图灵写给程序员的免费电子杂志《码农》,第二期,欢迎下载
码农那种周刊知识整理.zip,码农周刊整理