您的位置:首页 > 职场人生

Java研发求职指南

2015-09-03 00:06 459 查看
1、 基础篇(重点!)

针对笔试,如果不考虑具体语言,那么对计算机的理论知识必须要有一定程度的掌握。不管是在考事业单位还是IT公司笔试招聘,都会对基本理论知识进行考察。最主要的就是数据结构、算法以及一些网络等知识。

1.1、 数据结构

二叉树、栈、队列、链表、哈希表、数组(以及在这些数据结构上的操作)

2.1、 算法

排序算法:快速排序、堆排序、冒泡排序、归并排序、桶排序等等(见整理的那个资料)

查找算法:二分查找(线性表)、二叉排序树查找、哈希查找等

3.1、 网络

标准的7层模型、经典的TCP/IP的4层模型以及作用、各层的常用协议以及端口号、TCP和UDP的原理

Http协议报文结构,浏览器发起请求到得到响应走了哪些流程

4.1、 操作系统

进程和线程、Linux

5.1、 备注:如果时间充裕,应该找本数据结构、计算网络、操作系统书看看,把考研的专业知识复习一下。或者直接做笔试题,找到不会的地方,然后查询资料。按照目前的情况,就是应付笔试了,慢慢积累估计来不及。

2、 语言篇(重点!)

在重点掌握数据结构和算法的基础上,其次要至少掌握一门面向对象语言和脚本语言,比如Java、python、shell等。可以用语言实现简单的数据结构和算法。

1.1、 Java(重点)

Java继承和多态特性、访问限制修饰符(public,package,protected,priavate)、抽象类和接口特性、网络编程(Socket)、输入输出流(IO)、各种集合(List,Map,Set等Collection)、多线程(Thread、同步异步)、JDBC技术、正则表达式。

看java编程思想或者core核心卷,选择一个熟悉java语言。其次进阶,看深入理解java虚拟机,理解java的内存管理模型,(年轻代、老年代、永生代),垃圾回收GC机制等。下面给出一个java知识的学习结构图如下:


2.1、 C++

如果本科学过C++,可以温习一下。防止笔试需要。

3.1、 Python

目前了解和熟悉一下该语言的一些特性和基本使用。

用在:分布式存储、数据分析和处理、web开发。

4.1、 Shell

略,不要求可以shell编程。但要在Linux系统中使用基本的shell指令进行操作。比如在debain系统的ubuntu、redhat系列的centos等linux操作系统中使用各种常见的指令。(http://sucab.github.io/linux/Ubuntu-Linux-Learning-Note/可以装一下,学了玩玩)或者《鸟哥的私房菜Linux基础篇》一书学习即可。

3、 数据库篇

要熟悉常见SQL的编写(重要!)。比如多表关联查询(Join用法)、排序、分页、字段筛选等。可以装个mysql或Oracle客户端,练练SQL。

另外,了解一下非关系型数据库MongoDB。NoSQL和传统关系型数据库的区别。

4、 平台篇

在有了较为扎实的理论基础和编程语言基础上,需要根据目前应用的平台进行有针对性的知识储备。在Java语言的应用领域,主要分为以下几大平台:Java EE平台、Hadoop平台、Android平台。

1.1、 Java EE

Web开发(需要MVC、ORM等技能,Struts、Spring等,还有javascript等),主要用于公司的各种业务开发

底层api开发(Maven打包、设计模式、JSON、XML、网络编程、NIO、Nginx等等)。通用平台,向业务提供统一的api。

2.1、 Hadoop开发

采用纯java语言开发,基于分布式平台,对hdfs上海量数据进行整理和清洗等。(要求:对Hadoop框架有深入了解,比如MapReduce、Hdfs、Yarn等)不细说。

Hadoop、Spark都是新技术,有前景。可以用于数据挖掘分析、推荐系统、预测分析等等。ETL技术

3.1、 Android开发

需要熟悉Android平台的内容,你懂的。移动互联网时代需求较大。后台服务其实也是可以用javaweb做的,更多是Android的UI开发吧。

上手也快,竞争力一般。

5、 其他(有时间再熟悉,不要求)

Restful api的概念、版本管理(SVN、Git)、Eclipse的熟练使用、Maven打包、windows访问linux(工具Xshell, Xftp等)、java打印日志(common-logging,slf4j-logging)、webservice技术、netty

6、 面试篇

笔试就是考察基础理论、编程语言和逻辑思维。在面试时会根据简历和语言方向提出一些问题,也会包括编程语言和数据结构之类的,侧重在考察个人积累,自己在读研期间接触过的任何东西,随便你吹。比方你搞过LDA,数据挖掘等相关算法。亦或是有个Android开发经验以及过程中解决的问题。关键就是把自己知道的都说出来。

7、 总结

个人见解:如果应付笔试,要重点掌握基础理论和一门编程语言以及一些比较经典的思维逻辑题,并且每次笔试后都要回顾和梳理一下不会的题,以便下次笔试再次出现。

通过笔试后,面试的话就需要根据自己的倾向说明自己在这方面的知识积累。如果自己都不知道是哪方面的,那么面试官也不知道给你定位什么岗以及问你该方面的问题。一般都是根据简历来问,所以找工作简历也是一块重要的地方。

职业方向来说,目前大数据挖掘有前景,并且你读研期间的方向有优势,加上熟悉Python,java的话。如果只是单纯的开发,可以搞Android。其他可能要求较高而且加班多,要解决客户现场问题,估计偏向男生。亦或是做测试、前端开发(js、html5)也可以。

如果考银行和事业单位,涉及到计算专业的知识。基础篇和语言篇是重点要学的。目前来看,定位技术方向,然后到论坛找笔试题做查漏补缺,看面试问题多做笔记记录即可。非技术类的,就需要事业单位公共基础题啦。

总而言之,言而总之。就是把基础打牢,然后多了解开源产品,愉快地做一个面霸吧!

8、 相关参考

http://www.itmian4.com/(一线互联网笔经面经论坛)

http://sucab.github.io/(个人记录)

http://xjh.haitou.cc/nj/(已经有2015大量的招聘信息了)

http://julyedu.com/(上面有很多算法视频,还有面试求职)

自己发现的也可以学习,培训机构的学习视频,可以跟实验室的小伙伴找来学学,^-^

9、技能图谱

http://www.stuq.org/subject/skill-map/

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: