前言
学习是一种基础性的能力。然而,“吾生也有涯,而知也无涯。”,如果学习不注意方法,则会“以有涯随无涯,殆矣”。
学习就像吃饭睡觉一样,是人的一种本能,人人都有学习的能力。我们在刚出生的时候,什么也不知道,是一张真正的白纸,我们靠学习的本能,学会了走路、说话、穿衣服…后来,我们上学了,老师把书本上的知识一点一点灌输到我们的脑子里,我们掌握的知识越来越多,与此同时,我们学习能力却好像越来越差了,习惯了被别人喂饱,似乎忘记了怎么来喂自己了。
学习本来只是一种本能,算不上什么能力,然而,经过二十多年的不断学习,学习反而成为了一种真正的能力,因为我们慢慢失去了它,它就更显得珍贵。
作为一个程序员,不断的学习更是重要,不学新的知识就迟早会被淘汰掉
大多数初级程序员都能升级到高级,只是时间问题,而本文的目的就是让大家缩短升级的时间。
第一,本文列出了在Web方面初级程序员要升级到高级的必备知识点,以多数人升级时遇到的陷阱为警示,确保大家不在众多的知识点里迷失,而最终导致方向性错误。
第二,以公司对高级程序员的实际需求告诉大家必备的知识点应该怎么学。
第三,本文更从语法之外,告诉读者应该怎么从“性能调优”和“框架”的角度往更高的目标发展。
第四,本文一个知识点会配置一个案例,并且每个案例都有视频,确保读者能通过观看视频调试出来,而且保证能从案例中学到关联的知识点。
目录
主要内容
本文围绕着软件公司对高级程序员的平均要求,根据笔者多年的面试和培训经验,构建了JavaWeb方面的高级程序员的进阶体系,包括初级程序员与高级程序员的差别对比、数据库实用知识点、JSP+Servlet+JavaBean+DB开发框架、Struts框架、Spring IoC、Spring AOP、拦截器、Hibernate和Spring的整合方式等,最后两章讲述了基于SSH和基于SpringMVC的两个案例,以及在面试时如何高效地介绍自己项目经验的方法。
本文总共分为11章,322页的内容,因为包含的内容太多,所以只把每章重要的知识点拿出来介绍一下,每个小节都有更加细化的内容,希望大家能够理解与喜欢!!
第1章,高级程序员的Web知识体系;
衡量高级程序员的标准既简单又复杂,简单的标准是年限和工资。高级程序员需要的工作年限- .般是本科生两年半左右(好学校的学生年限能适当降低到两年,硕士一般是一年),能给到的工资一般能达到当年毕业生平均工资的1.5倍左右(能力强的入门就能给到2倍以上)。
但年限只是一个基本的指标,比较复杂的标准是综合能力(似乎是废话)。作者以多年的高校教学经历及高级程序员+架构师+面试官的经验,在本书的诸多章节里列出了在JavaWeb方面高级程序员必须要掌握的知识点。本章没有用很大篇幅讲述环境的安装步骤(因为已经录制在视频里了),而是从总体上列出从新人到高级程序员升级的诀窍。
第2章,需要了解的数据库知识
对于一个初级程序员来说,对数据表的“增删改查”操作是一-定要掌握的,但如果仅仅止步于此,是达不到公司的基本需求的。
具有3年相关经验,是初级程序员和高级程序员的分界点,本章将列出大多数公司对具有3年经验程序员在数据库方面的要求。通过本章的引导,大家可以找到合适的学习方向,甚至可以通过学习,直接提升自己的能力。
第3章,JSP+Servlet+JavaBean框架
说到Java Web开发,JSP、 Servlet 和JavaBean是绕不开的知识点,确实,其中每个技术都包含了许多语法,学起来很不轻松。
要告诉大家的是,现在用这套框架的项目都是些中小项目,大型项目很少用到它,这套框架的作用是程序员进阶的“敲门砖”,是大家了解后继Struts、 Spring等框架的基础。
本章不会罗列很多不常用但很难记的语法点,而是只列出平时经常会用到的,并且会通过这个框架让你知道Web框架的大致模样。
第4章,通过Struts进-一步了解MVC
和前文里介绍的JSP +Servlet+JavaBean框架相比,Struts 是一- -个实现MVC各部分之间跳转的模板,程序员只要通过编写一些代码和配置文件,就能很方便地实现“从前端数据请求→请求跳转→处理请求”等跳转动作。
如果没有JSP+Servlet+JavaBean 这种基于MVC的实现,程序员就不得不在“剪不断理还乱”的JSP里大量嵌入Java代码。但如果单纯用JSP+Servlet+JavaBean,而不用Struts,那么程序员可能需要把一-部分精力用到“不能实际产生价值”的MVC之间的交互上。
Struts框架能根据程序员的配置文件,自动地实现MVC之间的跳转,从而让程序员可以更多地关注项目开发的灵魂一业务实现。
第5章,Spring的基本知识点分析
可以这样说,Spring 颠覆了我们对编程的一些传统观念, 所以要完全掌握Spring的精髓并不简单,不过大家一旦在大脑里固化了Spring 的- - .些思维方式,就可以立竿见影地提升自己的能力。
Spring的技术点主要分为四大块。第一是常规知识点,比如SpringloC和AOP等;第二是Web应用方面的Spring的MVC框架;第三是和其他框架的整合技术,比如和Hibernate整合;第四是数据方面的应用,比如事务等。
本章主要讲述Spring的常规知识点,通过一些案 例向大家展示一些不可 思议的“编程方式”,通过学习,大家不仅能体会到Spring 给我们项目开发带来的切实的好处,更能为了解Spring的其他知识点打好坚实的基础。
第6章,Spring的MVC框架
用Struts的MVC开发项目时,在业务代码里可能会较多地看到Struts的痕迹,比如业务和Action类关联度很大,用专业的话来讲就是Struts的MVC和业务代码的耦合度较高。
通过了解Spring的loC和AOP等特性,可发现Spring比较擅长解耦合,所以Spring的MVC能做到和业务耦合度很低。
第7章,通过ORM专注业务(基础篇)
ORM是对象关系映射(Object Relation Mapping)的缩写,用这种技术可以把数据库里的数据映射成Java对象(比如链表Map或Set等),从而能让我们在业务代码里通过操作Java对象而不是数据库来实现业务,使得我们更专注于业务本身,而不是更多地关注业务背后所对应的数据库操作。
专业地讲,通过ORM技术能做到“实现业务”和“操作数据库”的解耦合,通过这种解耦合的编程方式,能让项目里最有价值的核心部分一业务代码一保持稳定,这就是ORM技术的核心价值所在。
第8章,通过ORM专注业务(高级篇)
在第7章的基础上,本章将把Hibernate应用到更多的项目场景里。
通过本章讲的“映射”知识点,可把数据表里的数据映射成List、Map和Set等类型,以便能更好地在业务代码里使用。此外,还将通过Hibernate 把多张表关联到- -起, 并实现级联操作的效果,这种操作会让我们管理业务对象变得更加方便。
类似于Spring拦截器,在Hibernate里也可以把一些通用的方法放到 “拦截方法”里,以避免复制重复的代码。更重要的是,还将说明在项目里提升Hibernate性能的一-些经验。
上一章是让你会用Hibernate, 本章则是让你了解作为有3年Hibernate经验的初级程序员应该知道的事情。
第9章,Spring整合数据库层面的应用
通过Spring的IoC编程方式,让业务模块以耦合度较低的方式整合到一一起, 从而让项目有较好的扩展性和可维护性。通过Hibernate的ORM,可以把更多的精力用在业务对象层面,减少关注数据库层面的实现。
此外,Spring 的“解耦合性”也被广泛地用来管理事务,在项目里,操作数据库和事务本身是两件不同的事情,前者和业务相关,而后者仅仅是规定了一批操作,要么全做,要么全不做。
在传统的JDBC等方式里,事务提交、回退等操作是紧密地和操作代码耦合在一起的,而在Spring的声明式事务管理方式里,在数据库相关的操作代码里我们是看不到事务痕迹的,这种解耦合大大降低了相关代码的维护代价。
第10章,Web框架案例分析
本章将介绍Struts+ Spring+Hibernate (SSH) 框架的整合方式。由于现在Struts 用得并不多,都是些历史项目还在用Struts, 所以大家对此了解一下即可。案例中,将应用Spring ,MVC+Hibernate的开发框架。
在实际项目中,不论业务多复杂,都可以归纳成“增删改查”四个方面的应用,所以通,过这四个方面的应用来走通从前端到后端的所有流程。
第11章,简历面试那些****事中
公司是通过筛选简历和面试来确认候选人能力的,如果确定要录用了,再通过背景调查来核实候选人在简历上写的信息。在此过程中,筛选简历的人事和面试官没有义务来帮你挖掘亮点,讲得再实际一一些,在候选人无法自证是否达标时,一般认为是没有,所以有不少技能达标的人倒在了面试路上,同样也有不少技能欠缺但会面试的人“涉险”过关。
如果是因为面试方法不对而错失良机,那么就太可惜了。当然,大家多参加几次面试,也一定能“久病成良医”,不过时间就耽搁了。
笔者在这里,将根据面试多个候选人(至今有100以上)的经验,来向大家展示各种关键技能,从而帮助大家完成最终的临门一脚。
面试谨记
面试官是人,不是神,拿到你的简历的时候,是没法核实你的项目细节的(一般公司会到录用后,用背景调查的方式来核实)。
你在面试的时候,不需要告诉面试官你以前干过的项目细节,因为面试官根本不关心,而是需要展示你以前项目里用过的技术、框架,以及你对这些技术的熟悉程度,面试官会由此来确认你是否适合这个岗位。
面试官从五大方面综合考察你
1.团队协作能力
①从说话方式语气等方面看看这个人给人的感觉是否好相处,有没有明显的性格方面的问题
②询问你之前的项目经验,比如会问如果出现问题了,你是怎么和别人协调解决的
③确认你不会成为项目组里的刺头
2.沟通和表达能力
①谈吐和思路是否清晰,表达方面是否存在明显的问题
②遇到问题,能不能主动沟通别人来解决,而不是被动地等别人来问
3.职业规划
问下你之后3到5年想干什么,如果你想干的和你的实际岗位有落差,说明你稳定性不强,这可能会导致你被淘汰
4.稳定性
通过询问之前公司的离职原因,考查你稳不稳定,如果感觉到你会经常因为待遇或者压力大而辞职,那么可能会导致你被考查
5.是否能承受大压力
①问你能不能加班的环境
②了解你之前公司的加班情况
完整版有更加详细的介绍,需要的朋友要抓紧时间来学习了!