多语言展示
当前在线:347今日阅读:168今日分享:49

三年工作经验的程序员,应该具备哪些技能?

新的跳槽季又来了,每个程序员心里都有自己的小算盘,无论是前一年受委屈了还是钱没给到位,或者是其他什么原因。但怎样才能顺利跳到下一家单位呢?应该具备哪些技能呢?远标为你分析一下
工具/原料
1

3年工作经验的程序员

2

项目经验

3

专业技能

程序员分类

首先我们要给程序员分个阶段,因为每个阶段的程序员在面试时考察点和招聘要求都是不一样的。按照工作经验大致可以分为三类:工作三年、五年和十年的程序员。三年是一个门槛,这是检验阶段,刚刚走出校园步入工作岗位,会不会有水土不服、是不是真的合适这个行业,三年的时间足够验证。如果不合适,入错了行,那么还来得及转行;如果是真的入对了行,那么这三年也积累了不少经验,技艺修炼到了另一个段位。在职业生涯中是一个重要转折点,可以根据自己的能力考的中层管的小组长、主管;工作五年和十年的以此类推。接下来以工作三年的程序员为例,看看3年,最少得具备哪些技能。

一、 关于项目经验

项目经验是程序员最宝贵的财富,不同于其他岗位,程序员很少要求有什么样的人脉资源,最重要的就是经手过的项目。面试官考察的主要就是以下几个方面:项目经验+基本技术+个人潜力,带来什么。简单提炼上文大意就是:1. 项目是做什么的、都有什么功能,必须做到心里有数;2. 项目的整体架构铭记于心,并且能在面试现场给面试官画出来,能够指出从哪里调用到哪里以及使用什么方式调用3. 说明你负责的内容在整个项目中的重要性4. 准确说明你负责的部分用到了哪些技术,当然如果能够说明整个项目的技术点更好。

二、关于专业技能
1

基本语法包括static、final、transient等关键字的作用,foreach循环的原理等等。

2

集合这个知识点很重要,是必问内容。基本上就是List、Map、Set,各种实现类的底层实现原理,实现类的优缺点。

3

设计模式众所周知,设计模式在工作中非常重要、而且很有用,面试中这一块的问题基本分为三个方向:a. 准确说明经手的项目中用到了哪些设计模式以及如何使用b. 主流设计模式的优缺点做到心中有数c. 可以画出常用设计模式的UML图

4

多线程这也是几乎必问的一项,但是对于拥有三年工作经验的程序员来说,实现多线程已经非常小菜,所以这类问题应该不会问,会考察更深层的问题,比方说Thread和Runnable的区别和联系、多次start一个线程会怎么样、线程有哪些状态等等诸如此类。在远标这一项也是重点学习的地方

5

IOSocket IO相对来说还是比较important的,主要掌握以下几点内容:阻塞与非阻塞、同步与异步的区别,还要明白阻塞IO、非阻塞IO、多路复用IO、异步IO这四种IO模型,Socket IO怎样跟这四种模型相关联。以上都是比较简单的知识点,再难一些就是NIO的原理、NIO属于哪种IO模型、NIO的三大组成等等。

6

JDK源码这绝对是加分项,回答得漂亮就能拿更高的薪水。下面提供一些重要的集中代码,仅供大家参考:a. List、Map、Set实现类的源代码b. ReentrantLock、AQS的源代码c. AtomicInteger的实现原理,主要能说清楚CAS机制并且AtomicInteger是如何利用CAS机制实现的d. 线程池的实现原理e. Object类中的方法以及每个方法的作用

7

框架不用说,这也是必问的题目,但是个人感觉不能算是难题,只要实际操作到位,能够简单讲出几个常用的框架就可以,因为这里问的问题几乎都是实际操作方面的,这里不多做介绍了。

8

数据库这块比较重要的内容就是数据库性能的优化,要是这块知识点完全没有基础,根本不了解,建议你现在赶紧学起来,不然明年面试可能就危险了。

注意事项

专业的技能水平

推荐信息