应届生想要找到一份 Java 开发的工作,需要达到什么水平?
没有框架开发的经验,这里最低要求是能自行搭建个 SSM 项目,但不少同学根本没有。
数据库方面,就知道理论上的增删改查,甚至不会在 MySQL, Oracle 和 SQL Server 平台上运行过 SQL 语句。
Java 核心方面,掌握了一大堆项目里一定不会用的,比如 Swing 之类的界面编程技术,但该掌握的多线程集合等,一些常用的概念也不清楚。
论动手能力,有些同学甚至没有在 Eclipse 等 IDE 上运行通 Java 代码,或者出了基本的语法错误不知道如何自行解决,至于没有 debug 调试经验的,就更加见怪不怪了,而在代码里需要加必要的 try…catch 异常处理语句,这就更加凤毛麟角了。
在一些一本大学里,理论和实际操作能力较差的同学虽然不多,但也有,就更别提其它大学和大专了。我也和一些大学老师打过交道,也看过一些大学里用的 Java 和数据库等编程方面的教材,再结合诸多应届生在面试时的表现,我的感受是,或许大学阶段更会培养学生的理论素养,但大学生朋友在读大学阶段,一定要提升实际的编程能力,包含但不限于(SSM)框架的编程能力,数据库实际操作能力和 Java 核心部分代码的开发和调试能力 。
三、哪些大学里学到的知识点面试大概率不问(根本不用太费精力看的技术有哪些)
前几天我看到篇大学生朋友写的文章,或许很多大学生朋友也知道上进,平时也在不断看各种资料,但可能苦于方法不当,可能有些大学老师也没真在公司里干过,也没法给出合适的学习建议,所以导致最终毕业找工作时,能力没达到基本的期望要求。
也就是说,大学教育和公司面试需求之间存在差距,这就给一些培训机构带来了商机。但培训机构收的钱也不便宜,而培训班也不是一定能保证学生能找到工作,关键要靠自己。从这里开始,就将给出有实际操作性的学习建议。
我最近接触到不少大学生朋友,发现他们努力正在学的知识,面试时未必会问,也就是说,这些点白学了。之前已经提到了面试的标准,这里就将结合具体的知识点,列出面试时需要掌握的最低技能标准,除此之外,大概率不会问的。
Java 核心方面,集合,多线程,异常处理,IO,JDBC,面向对象技能,大概率会问到,其它的没提到的,比如图形化界面,NIO,Socket 网络编程,甚至 Applet 之类的,不会问到。
数据库方面,会写增删改查的 SQL 语句,知道存储过程之类的概念,会通过索引优化查询条件,会建表,会写诸如子查询,group by,having,表关联查询等基本 SQL 技能,这里请注意,至少得用过一种商业化数据库。
框架方面,需要有 Spring+Spring MVC+mybatis 框架的实际操作能力(不是商业项目开发能力),至于有 Spring Boot 或 Spring Cloud,那更好了。
综合技能方面,能知道基本的数据结构知识(线性表外带排序外带一些树的技能),基本的操作系统知识(一般仅限于线程进程概念),基本网络通讯知识(一般仅限于网络通讯模型和 tcp udp 协议),但这仅仅是“需要知道”而已。
大家其实也可以通过看各种职位描述和招聘需求,看下哪些技能实际上是不会问的,对于这些知识,就不用学,从而把精力用到学实际 Java 相关技能上。
这里需要说明,在大学阶段学的很多知识,不能说没用。比如网络通讯里的 tcp 底层通讯细节,这些技能或者要等到工作 5 年后升级到高级开发或架构师的时候才会用到,而且以高级开发视角观察需要掌握的通讯协议细节知识,绝对要比大学阶段要复杂。
换句话说,很多技能,在大学阶段也就“需要了解有这事”,以在大学阶段的经历,再多用时间学,估计也无法达到“实际项目的需求”,而且等到有实际项目经验时,再学这类技能也就是一两周的事情。两厢一对比,结论就很明确了:在校阶段应该更多积累实际开发能力,因为更得靠这个找工作。
如果大家对于学习 Java 有任何的问题,关于如何提升学习 Java 以及学习方法、学习技巧、快速达到就业的技术水平,都可以随时到这个群问,建立了 5 年的 Java 学习交流群:796 866 257。
有不懂的问题可以随时在里面问,需要 Java 各个阶段的学习资料也可以在里面进行下载。里面有很多大佬,关于前端和 Python 的问题也可以问我。
四、用一个月的时间了解 Java 核心部分的内容
通过上文,大家大致可以了解到毕业时找工作的目标,如果再不了解,可以实际看下招聘要求,甚至直接多去参加招聘会和面试,总之优先考察实际的开发能力,具体在 Java 核心部分,该如何高效学习呢?
在电脑上装 jdk,eclipse,别用 editplus 之类的工具,最好再用 eclipse 的自动编译功能。这方面,其实是锻炼自己的动手搭建环境的能力,工作后,开发是一方面,搭建环境的能力同样重要。
刚开始,一定得去找两三本 Java 入门书,先通过运行现有代码,理解代码的含义。别光看书不运行,开始阶段,也多运行别人的代码,别自己敲代码。这里建议直接找书,因为相比一些视频教材,毕竟书上的知识很系统,而且能正式出版的书一般没代码问题,能直接运行。不建议自己敲代码,是因为自己敲代码时,多少会遇到问题,遇到问题后延误学习进度是小,因为一直得不到解决从而影响学习信心,甚至终止学习了,事情就大了。
如果找到两三本 Java 入门书,一般其中涵盖的知识系统大多很相似,大家可以先运行一遍所有代码,这样就能大致掌握代码结构和基本知识点,而且由于书上代码一般问题不大,而且质量也不会低,至少不会有太大的阻碍性问题。
当运行好以后,着重观察集合,面向对象,多线程,IO 处理,JDBC,异常处理相关章节,这个阶段,是以掌握 API 用法为主,在这基本上再看下诸如接口,抽象类,异常处理流程,垃圾回收之类的高级知识点。
在上述基础上,如果可以通过资料的帮助,用 Java 实现堆栈,链表,队列,散列表,树等的数据结构,同时操练各种排序算法,这对找工作也有些帮助。
五、用半个月的时间,以 MySQL 为例,了解数据库的大致操作
在数据库方面,最好也去找本书,同时在 MYSQL 上实践。为什么选 MYSQL?因为这比较轻,相比 Oracle 而言,好安装,当然如果有条件装 SQL Server 之类的,那就更好了。
在 MySQL 数据库上,实践各种增删改查的 SQL 语句,实践建表,建索引能技巧,同时实践一下诸如子查询,with as 等等复杂的 SQL 语句。
用 JDBC 连同 MYSQL,在 Java 代码里做各种增删改查的操作。
在此基础上,了解诸如索引,范式和锁等概念,这时候虽然认识也会很肤浅,但至少不会一头雾水了。
这样,在数据库方面,好歹有实际操作经验了,这为之后的项目实践,能打下很好的基础。
六、用一个月的时间,了解基于 Spring 的 web 框架
面试时更看重的是框架经验,这块学习的建议如下。
先通过运行代码,了解 Spring 里 IOC, AOP,这时应该注意各种配置。
熟悉 Spring 的基本概念后,可以尝试跑一个 SSM 的小例子,这个例子可以非常简答,就一个页面也行,但要包含 Spring MVC 和 Mybatis 诸多要素,这样大家好歹能知道框架的构成,在这个基础上,可以继续扩展,加些必要的业务,从而进一步了解这个框架。
在这个阶段,还是最好看书上的例子,因为书上的例子一定能通,而且还会带部署和运行的步骤,还是不建议自己敲代码,因为 SSM 框架相对复杂,在这个阶段如果自己敲,很有可能会因为问题太多而放弃。
在自己机器上跑通 SSM 框架的案例后,可以网上找个带业务的系统,比如图书管理系统等,从中看些前端和后端交互数据的流程,同时,结合业务看 Mybatis 里的 ORM 过程,以及 Spring 里的常用注解。
七、在学习过程中,可以避免的误区
Java 方面,本人按照上述步骤辅导过不少在校的同学,只要肯上心练习,效果不会太差,不过很多同学在实践过程中会走弯路,这里列些普遍存在的问题,请大家在操练的过程中尽量避免。
别钻牛角尖,先面再点。比如有同学对一个知识点不理解,或者一段代码运行有问题,就会在这个点上耗费很多时间,不解决就不继续。其实在这个过程中,首先需要全方位掌握 SSM 框架、Java 技术和数据库,个别点如果有问题,可以跳过,或者一个案例运行不通可以运行其它类似的,总之别在一个点上花费太多的时间。
再啰嗦一下,最好先照着书上代码运行,开始阶段的学习方法是“复制粘贴运行理解”,在自己已经有一定的基础后,再尝试自己写代码。
在操练 SSM 项目时,有些同学会照着视频上提到步骤做,如果有些视频步骤不对,这样就会有问题,所以还是建议照着书做。
工具要选对,刚开始就 eclipse,或者 Idea,别用 editplus 或命令行。
上述是方法上的误区,其实最大的问题出在态度上,上述学习过程持续时间不会短,快则两三个月,慢则半年,如果中途因为效果不明显而放弃,那就很可惜了。
八、有学习项目经验后,争取找些商业项目的实践机会
按照上述步骤,让自己拥有最基本的 SSM 以及其它 Java 和数据库相关技能后,要做的绝
不是继续积累学习项目经验,而是尽可能去找实习的机会,以积累商业项目的经验。在找实习经验方面,大家可以参照如下的建议。
在我之前的博文里也提到,大三时,打听计算机学院里哪些老师和外面公司有合作,一般硕导都有这样的项目,然后直接去找老师,刚开始不要钱,只求经验,或许对各位在校生同学而言,这种方式是比较可行的,本人第一个商业项目经验也是由此得到的。
一般学校里都会安排实习,实习的过程中,一定要重视,这个是实打实的商业项目经验。
寒暑假,找软件公司,这可能会比较艰辛,因为在校阶段自己非常难找相关实习机会,但要去找。
这个大家根据自己的实际情况自己斟酌:如果报培训班,多少能积累些项目经验,但这仅仅是学习项目经验,不过在培训班里,可以找相关老师推荐实习的机会。
如果实在找不到实习的机会,那么尽可能通过各种渠道,去找商业项目经验的案例,我知道有些网站有,但不做广告。虽然靠这种方式积累的商业项目经验质量就打折扣了,但好歹聊胜于无,而且毕竟很多毕业生,连学习项目经验都没。
评论