现在有 SCJP 这个比较权威点(SUN 公司的)~~~在这个考试费用是 1250元 如果你是在大学
还可能享受优惠 只要 450 元
考点:
Section 1 Declarations and Access Control
目标1, 创建数组
采用不同的格式来编写任一基本数据类型数组的声明,构造及初始化的代码。
数组是一连串对象或基本数据,它们必须同型,并以一个标识符封装在一起。数组好象一个对象,通过new关键字来创建。
声明数组
数组的声明并不能为数组分配内存。声明时数组不能有大小信息,也就是说编译器并不允许你告诉它究竟数组有多大,它只是一个reference(引用),并没有对应的空间。声明数组的方式有: int[] a1int a1[]两种,int num[5]是错误的数组声明方式。
声明并创建数组
声明一个数组并同时为它分配内存。
Int num[] =new int[5]
声明并初始化数组
声明一个数组并同时进行初始化。
Int num[]=new int[]{0,1,2,3,4}
Int num[]=new int[5]{0,1,2,3,4}//!错误
数组知道自己的大小
与c++不同,数组知道自己的大小,当数组越界时,会抛出ArrayIndexOutOfBoundsException异常。数组具有length属性(不是length()方法),它能告诉你数组的大小。
多维数据
int m[][] int [] m[]int[][] m
数组的缺省值
与其它的变量不同,不论数组在向处创建,它总是使用可以使用缺省值。
目标2 声明类与变量
声明类,内部类,方法,实例变量,静态变量,自动变量(局部变量),正确使用各种修饰符(public , private , static ,final, abstract)。
在JAVA中万事万物皆对象,即使JAVA程序本身也是对象。
类的定义和对象的生成
public class MyClass{ //类定义
int i
float f //类数据成员
void amethod(){ //方法
int i// 局部变量
}
}
MyClass aClass =new MyClass() //创建类的一个实例(对象)
修饰符说明
private
被了变量所在的类,其它任何类都不可以访问这个成员。
无访问修饰符
所谓的包访问权限,同一个包内的其它类可以访问这个成员。
Protected
与无访问修饰符具有权限外,还允许子类访问这个成员。
Public
具有全局可视性,任何其它类都可以访问这个成员。
Static
Static变量称为类变量,类的所有对象共享这个变量。
Static方法称为类方法,它只能访问static变量。静态方法不能被子类overriding为非静态方法,但静态方法可以被子类静态方法所Hided.
Native
只用于方法,指明方法体是由其它编程语言编写的。它以;结尾不是以{}结尾。
Public native void fastcalc()
Abstract
Abstract修饰符可用于类与方法前,在用于方法前时表明方法不具备方法体。只支类中包括了抽象方法则它必须声明为抽象类。如果一个类实现一个接口时,它没有为接口中所有的方法提供实现时,也必须声明为抽象类。
Final
Final修饰符可用于类,方法和变量,fianl类不能被继承,所有final类中的方法都是教学final方法。Final变量的值必须在创建时设定并具不能被修改。
Synchronized
防止多个线程同时访问相同的代码段。
Transient
表明类序列化时,变量不必序列化。
Volatile
表明变量由于线程可能异步修改。
目标3 缺省构造器
结定一个类,确定是否有缺省构造器
构造器是与类名相同的方法,并具没有返回值。缺省构造器是一个不具有任何参数的构造器。在你没有提供构造器的条件下,编译器为自动化为你提供一个缺省的构造器,但一旦你定义了任何一个构造器,编译器就不会为你提供缺省构造器。在这种条件下,如果你使用不具有参数的构造器将有错误。
构造器可以有访问修饰符,但不能有native,abstract,static,synchronized和final修饰符。
目标4 重载与覆写
为所有在自己或父类中的相关方法声明有效的返回值,
相同类中的方法
当在同一个类中有多个方法具有相同的名称时,这个方法就被重载了。只有参数的次序和类型是区分重载方法的依据,而返回值和参数的名称对区分重载方法没有贡献,所以,不能以返回值的不同来重载方法。
子类中的方法
可以在子类中重载父类的方法,只要新的重载方法具有不同的参数次序或类型。当你在子类中的方法具有于父类中的方法相同的signature,则称子类覆写了父类的方法。注意:子类覆写父类方法,它的访问修饰符可以不同,但子类要具有比父类更加严格的访问权限。
静态方法不能被覆写只能被HIDED。
基本类型为参数的重载
基本类型可以自动进行窄化转型(narrowing conversion),在没有相应数据类型的重载方法,它的数据类型向上晋升。
Section 2 Flow control and exception Handling
目标1 if 和switch语句
使用if和switch编写代码并能区分有效的参数类型
if的条件语句中只能是boolean型的数据。
Int k=1
If(k ) System.out.println(k)// 错误
If(k==1) System.out.println(k)// 正确
Switch的条件语句中只能是int数据类型,或int的窄化数据类型也就是byte, char, short
Long i
Switch(i){ //错误
Case 1: .. break
Case 2: … break
Default: ..
}
case语句的break的使用,在switch块中只有遇到break语句时,块才跳出。
Default语句不必总安排在switch语句的最后,但default语句不在最后时,要使用break.
三元 *** 作符 ?:
目标2 循环,break和continue
编写各种(不)具有label的break和continue的循环语句。明确循环开始与结束时,循环记数器的值。
For 循环
语法:
for(initializationconditional expressionincrement)
逗号运算符
它只能用于for的控制表达式中。
for(int i=1,j=i+10i<5i++,j=i*2)
do-while与while的区别在开do-while中的语句至少执行一次。
Goto与break,continue
虽然goto是java的保留字,但java而不使用它。Java中的跳跃功能由break与continue提供。在java中,惟一一个放置lable而能够产生效益的地点就是恰恰放在迭代语句前。一般而论,break与continue只会中断当前的循环,而与label搭配,可以中断多层循环。
Label1:
Outeriteration{
Inneriteration{
…
break//1
…
continue//2
….
Continue label1//3
….
Break label1//4
}
}
1中断内层迭代,回到外层迭代
2将执行点移至内层迭代的起始处
3同时中断内层迭代,再从外层迭代开始
4同时中断内外层迭代,不再进行任何迭代
务必记下。在java中使用label的惟一理由是跳过一个以上的嵌套层次。
目标3 try/catch语句与方法覆写
正确使用异常与异常处理语句(try,catch,finally)来编写代码,正确处理覆写方法的异常。
异常一词,意指“我对这件事有异议:我对这件事感到意外”。在问题发生点,你可能自己处理异常,有时,你可能不知道如向处理,就是说在当前的context并不具备中以修改问题的信息,你可将问题交付给高层的context的处理。
覆写有异常抛出的方法
覆写具的异常抛出的方法时,子类的方法只能抛出父类方法所抛出的异常或它的子异常。但是,子类方法可以抛出少于父类的异常或干脆就不抛异常。
方法声明的Throws子句
抛出子句意指当错误发生时,方法抛出这个异常而这个方法的调用者必须处理(catch)这个异常异常。
目标4 如时异常发生
认识代码段中异常发生的地方以它的影响。注意:异常可能是运行时异常,检测异常或错误。
错误无需捕捉
异常的出处:
Java标准库类抛出的异常
自己的类抛出的异常
执行期发生的任何意外
检测异常与非检测异常
检测异常你必须捕捉,而非检测异常你不必捕捉。
非检测异常发生后,缺省条件下会在控制台上打印一条消息。对某些非检测异常可用编码来避免。
public class GetArg{
public static void main(String argv[]){
if(argv.length ==0){
System.out.println("Usage: GetArg param")
}else{
System.out.println(argv[0])
}
}
}
检测异常必须被捕捉,方法在调用某个抛出检测异常的的方法时,它或者捕捉它或抛出它。
public FileInputStream openFile(String filename)
throws FileNotFoundException{//抛出异常,自己不处理
FileInputStream fis = new FileInputStream(filename)
return fis
}
或
public FileInputStream openFile(String filename) {
FileInputStream fis
try{
fs= new FileInputStream(filename)
}catch(FileNotFoundException ex){
ex.printStackTrace()
}
return fis
}
finally子句
finally子句总是会执行,即使try/catch中已有了return语句finally中的语句也会执行。但如果try/catch中有System.exit(0),finally语句不会执行。
Catch子句
Catch子句的捕捉异常的次序要与异常的层次结构相一致。也就是说子异常要先捕捉,父异常后捕捉。反之,编译器会抛出子异常已捕捉的信息。其它要注意是:异常被抛出后,异常处理根据捕捉的排列次序,寻找最近的处理程序。
目标5 使用断言
正确编写断言代码
assertion功能提供了一种在代码中进行正确性检查的机制,这种检查通常用于开发和调试阶段,到了软件完成部署后就可以关闭。这使得程序员可以在代码中加入调试检查语句,同时又可以在软件部署后关闭该功能而避免对软件速度和内存消耗的影响。基本上,assertion功能就是JAVA中的一种新的错误检查机制,只不过这项功能可以根据需要关闭。
断言的语法
assert somebooleatest
或
assert somebooleantest : someinformatinvemethod
断言的使用
断言的使用就好比注释的使用,注释向其它人表明其阅读的代码是正确的,而断言用于保证在程序执行过程中booleanTest的值一定是真。断言用于确保某些东西总是为真的。缺省条件下,断言功能是关闭的。
编译开启断言功能。
javac -source1.4 Myprog.java
运行开启断言功能
enableassertions的参数:
no arguments
Enables or disables assertions in all classes except system classes.
packageName...
Enables or disables assertions in the named package and any subpackages.
...
Enables or disables assertions in the unnamed package in the current working directory.
className
Enables or disables assertions in the named class
例如:
java –enableassertions:my.package… MyProg
java –ea Myprog
What should you assert to be true?
断言用于你认为某此东西必须是真的地方。例如:人的年龄必然大于0,又如你认为在一套if/else判定后,必然有判定成功的分支,就可在if/else后,插入断言。例如:
switch(lang){
case Language.java:
System.out.println("java")
break
case Language.pascal:
System.out.println("pascal")
break
case Language.csharp:
System.out.println("csharp")
break
default:
assert false : lang
}
断言使用的地方
应该使用的情形 不应该使用的情形
用于保证内部数据结构的正确 不用于保证命令行参数的正确
用于保证私有(private)方法参数的正确 不用于保证公共(public)方法参数的正确
用于检查任何方法结束时状态的正确 不用于检查外界对公共方法的使用是否正确
用于检查决不应该出现的状态 不用于保证应该由用户提供的信息的正确性
用于检查决不应该出现的状态,即使你肯定它不会发生 不要用于代替if语句
用于在任何方法的开始检查相关的初始状态 不要用做外部控制条件
用于检查一个长循环执行过程中的的某些状态 不要用于检查编译器、 *** 作系统、硬件的正确性,除非在调试过程中你有充分的理由相信它们有错误
在不开启断言功能时的输出:
在开启断言功能时的输出:
Section 3 Garbage Collection
Objective 1,2 &3
State the behaviour that is guaranteed by the garbage collection systemWrite code that explicitly makes objects eligible for garbage collection. Recognize the point in a piece of source code at which an object becomes eligible for garbage collection.
为什么要进行垃圾收集
当内存中的对象不再被利用时,系统就要回收内存。Java中不用担心垃圾收集,系统的垃圾收集器会自动回收没有引用的对象所占用的内存。注意:你能建议或鼓励 JVM进行垃圾收集但你不能强迫它。
确保的行为:finalization
Java确保在对象被收集调用finalize方法。垃圾回收器用于释放“对象内存”,由于java中所有的东西都是对象,所以finalize不用来回收释放内存。Finalize方法的使用时机是代码采用了native方法,它调用了非java的内存分配方式,所以你得在finalize方法中以native的方式释放内存。
对象被回收的时机
当垃圾收集机制认为对象上没有引用时,它调用垃圾收集器来回收对象。当垃圾收集是非确定性的,你不能预测它发生的时间,你也不能预测finalize方法准确的运行时间。
Note: Once a variable is no longer referenced by anything it is available for garbage collection.
You can suggest garbage collection with System.gc(), but this does not guarantee when it will happen
非可达
当对象非可达时,就是可能进行回收。非可达的原因为:对象明确被设置为null或指向它的引用数为0。
Section 4 Language Fundamentals
Objective 1, Packages, import, inner classes, interfaces
Identify correctly constructed package declarations, import statements, class declarations (of all forms including inner classes) interface declarations, method declarations (including the main method that is used to start execution of a class), variable declarations, and identifiers.
目标1 包,导入,内类与接口
正确的识别包声明,导入声明,类声明(包括内类),接口声明,方法声明(包括main方法),变量声明和修饰器。
包语句
包用于解决名字冲突,一般开发者以自己的internet域名的反序作为包名的第一部分。这样你就可以生成独一无二的包,这样包中的类就不会有名称上的冲突。例如:package cn.edu.xjtu.scjp 这样就可以产生独一无二的类名:cn.edu.xjtu.scjp.Question
注意: 包声明语句必须位于其它语句之前,除了注释语句
导入语句
导入语句位于包语句之后,其它语句之前。导入语句是为了方便代码编写,导入相应的包后,包中的类可以仅以局部名使用,而不以全限定名来使用。
Import cn.edu.xjtu.scjp.*
Question q=new Question()
或
cn.edu.xjtu.scjp.Question q=new cn.edu.xjtu.scjp.Question()
导入语句对性能的没有影响,它就好比DOS环境中设置路径。
注意:If a source file has a package statement, it must come before any other statement apart from comments
类与内类的声明
类声明
一个文件只能包含一个public类,但可以包含多个非public类。这些类在编译后将生成各自独立的.class文件。
内类,即定义在其它类之中的类。
接口定义
接口是纯粹的abstract class.它所定义的方法不包含方法主体。接口也可定义数据成员,但这些数据成员自然而然的成为了static和final. 接口中的方法即使没有声明为public,它们也会是public,所以实现接口时,必须将实现的方法定义为public。
例子:
interface Instrument{
int i=5// static &final
void play()// automatically public
…
}
class Wind implments Instrument{
public void play(){} //必须定义为public
…
}
main方法
main方法是程序运行的起点,方法的signature
public static void main(String argv[])
public:方法全局可见性 static:类方法 void: 无返回值 String[]:参数为字符串数组
main不是java的关键字,可以用它来定义变量。Main方法的参数是由命令行来提供的。
State the correspondence between index values in the argument array passed to a main method and command line arguments.
Java Aclass arg0 arg1 …
变量声明
变量的名称:它必须是一个合法的标识符。标识符以字母开头的Unicode字符串;不是关键字,布尔直接值(true,false)或保留字(null)它在作用范围内必须是唯一的。
合法的变量: _avariable, avariable$, (注:_,$可用于变量名)
数据类型:boolean-8/1 byte-8 -128~127
short-16 -32768~32767 int-32 long-64
float-32 double-65 char-16 0~65536
数据类型转型(casting operators)
在java中只有进行窄化转换(narrowing conversion)时才有风险,宽化转化(widening conversion )时就无需明确指示。
数据运算中的晋升(promotion)
在比int小的基本数据类型上进行任何数学运算或位运算时,运算之前会先晋升为int,其结果也会是int类型。如果你要将结果指给较小的类型时,要进行转型。
目标2 使用接口,
明确实现接口类,接口是Runnable或其它的用户自定义的接口
Interfaces -Programming by contract
接口是在类之间建立了一个协议(protocol),或者说合同编程。 意味一个开发者开发了接口其它开发者要守它的条件。接口的别一个用处是实现多重继承。Java中类只能继承一个非接口类,其余继承的来源得是接口。正确的写法是:
DeriveClass extends BaseClass implements interface1,interface2{}
接口合并时的名称冲突
Objective 3, Passing values from the command line
State the correspondence between index values in the argument array passed to a main method and command line arguments
运行一个例子就明白:
public class MyParm{
public static void main(String argv[]){
String s1 = argv[1]
System.out.println(s1)
}
}
java MyParm hello there
程序将输出there不是MyParm也不是hello
Objective 4, identify keywords
abstract boolean break byte case catch
char class const * continue default do
double else extends final finally float
for goto * if implements import instanceof
int interface long native new package
private protected public return short static
strictfp super switch synchronized this throw
throws transient try void volatile while
Objective 5, Unassigned variables
State the effect of using a variable or array element of any kind when no explicit assignment has been made to it.
Java保证变量绝对会在被使用前初始化。每个基本类型的数据成员都保证有初值(O)。而引用数据类型的数据成员的初值为null.
The default values for numeric types is zero, a boolean is false and an object reference is the only type that defaults to a null.
局部变量(在方法中定义的变量)不能缺省值,故使用前必须明确赋予初值。
数组总是可以设置缺省值的。Before initialization arrays are always set to contain default values wherever they are created.
Objective 6, The range and format of data types
Section 5 Operators and Assignments
Objective 1, Applying operators
Determine the result of applying any operator including assignment operators and instanceof to operands of any type class scope or accessibility or any combination of these.
目标1 使用运算符
*** 作符的分类
算术 *** 作符 (+ , - , * , / , %,++,--)
一元 *** 作符 (++, --, - , +)
关系和条件 *** 作符 关系 *** 作符(>,>=,<,<=,==,!=) 条件 *** 作符(&&,||,!,&,|,^)
移位 *** 作符(<<,>>,>>>) 位 *** 作符(&,|,^,~)
赋值 *** 作符(=)
其它 *** 作符(?:,[],.,new,instanceof,(类型))
注:除了=,==,!=运算符外,其它运算符只能用于基本类型。String类支持+,+= *** 作符
例: String aStr=2+”hello”
instanceof *** 作符用来检验某特殊对象是不是某类或该类的子类的实例,还可以检验某对象的类或子类是否实现了某接口。注意,数组也是对象,instanceof同样适合与数组。
赋值 *** 作符=
基本数据类型的赋值 *** 作
boolean数据只能赋值于另一个boolean数据。不同于c和c++,java中的boolean值只能是true和false。
其它的数据类型可以自由的进行widening conversion(宽化转换)。而进行narrowing conversion(窄化转换)由于有精度的损失,必须进行强制转换。
Primitives may be assigned to "wider" data types, a boolean can only be assigned to another boolean
引用数据类型的赋值 *** 作
引用数据类型的赋值,例如a=b,使得a和b引用指向相同的对象。引用数据类型的赋值可以向上转型。即一超类的引用可以被赋值一子类对象。但向下转型必须强制转换。
Object references can be assigned up the hierarchy from child to base.
++,--: 前序递增和前序递减(++a,--a)先进行运算然后才增赋值。后序递增和后序递减(a++,a--)先赋值然后才进行运算。
奇怪的++与--:
int a=1,b=5
b+=b++-a--(b=9)
b=b++(b=9)
b=++b(b=10)
关系 *** 作符
关系 *** 作符(<,>,<=,>=,==,!=)所产生的结果是boolean,==,!=可用于所有的内置的类型,其它运算符不能用于boolean.
奇怪的==(对于引用类型==比较两个对象的内存地址,这可不是我们想要的)
double d=12.0
int i=12
Integer i2=new Interger(12)
Double d2=new Double(12)
Integer i3=new Interger(12)
d==i true
i2==i3false
i2.equals(i3)true
i2.equals(d2) false
逻辑 *** 作符
逻辑运算符:&&,||,!只能用boolean值身上。位运算符:&,|,^,~:在两个 *** 作数的相应位上进行逻辑代数运算。boolean数据不能~b而用!b。&和|和^即是逻辑的(逻辑与,逻辑或和逻辑非)也是位 *** 作的运算符(按位与,按位或和按位异或)。
奇怪的&&与||(短路的&&和||)
当第一个 *** 作数为flase时,如果用&&运算符时,则不检查第二个 *** 作数就直接返回flase。
当第一个 *** 作数为true时,如果用||运算符时,则不检查第二个 *** 作数就直接返回true。
移位 *** 作符
无符号右移位 *** 作符>>>,它采用零扩展,高位插入0. 左移位运算符<<能将运算符左边的运算对象向左移动运算符右侧指定的位数在低位补0。有符号右移位运算符>>则将运算符左边的运算对象向右移动运算符右侧指定的位数,有符号右移位运算符使用了符号扩展。若值为正则在高位插入0,若值为负则在高位插入1。
注:int或<int的数据类型进行位移 *** 作数先要进行mode 32运算所以对大于32的位移运算,先要进行mode 32运算,所以3>>>32的结果为3。Long数据类型在先要进行mode 64运算。
奇怪的>>>:小的负数进行>>>运算将得到一个大的正数
-1>>>1 : 2147483647
A unsigned right shift >>>by a positive amount of a small negative number will result in a large positive number returned.
*** 作数的优先级
优先级(胃溃疡患者是c程序员的写照 Ulcer Addicats Really Like C A lot)
U: ->Unary 一元运算符 ++, -- ,-,+,!,~
A: ->Arithmetic(shift) *,/,%,+,-,>>,>>>,<<
R: ->Relation >,<,>=,<=,instanceof,==,!=
L: ->Logic(bitwise) &,^,|,&&,||
C: ->三元运算符
A:->赋值 = *=
Objective 2, the equals method
Determine the result of a
程序员面试一直是社区乐于讨论的热门话题。我自己从06年实习以来,先后经历了4家软件公司,全部是外企,其中有世界500强的通信企业,有从事期权期货交易的欧洲中等规模的金融公司,也有为大型汽车制造商开发Android智能汽车的新兴公司。跨入IT行业以来,我在求职过程中经历过多次面试,最近两年也有过多次面试别人的经验。我感觉现在到了对这个问题发表自己看法的时候,这篇文章是我站在面试官角度对于程序员面试问题的一个阶段性反思和经验总结。目标
相信和不少朋友一样,有了几年工作经验成为Senior后就开始了面试别人的经历。我在最初这个阶段只是按照自己的想象把”找到基础好的程序员“,”找到算法能力优秀的程序员“,”找到有Android开发经验的程序员“等作为面试的目标。但是,实际的经历告诉我,尤其是按“基础好”,“算法好”这些目标招到的人最终效果并不好。比如,有的面试者基础知识和算法掌握情况不错,进程、线程、内存等概念清晰,基本的Hash,二叉树,快速排序等数据结构和算法也比较熟悉,但是进公司后在实际工作中表现得很糟糕。后来,我才发现原来是我的面试目标出了问题,我原先的面试方法更像是大学的算法或 *** 作系统期末考试,按照这种方法让许多并不合适的人通过了面试,同时也可能错过了许多合适的人。
后来,我的反思是,从公司的角度讲,面试的根本目的是找到“能够干好工作”的人,而“高学历”,“算法好”,“基础好”,“有经验”这些都是表象而不是根本,它们并不能直接和“工作好”划等号。
方法
目标明确了,但接下来的问题是假设面试者是一个黑盒系统,“工作好”不是直接可观测变量,你所能直接观测的变量是基础、算法、经验、学历、性格、谈吐、年龄等等。所以,实际上,你只能从“基础好”,“算法好”等可以直接观测的量去推测“工作好”的概率,这就是一个在“X好“条件下”工作好“的条件概率问题:P(工作好 | X好)。
根据这个模型,面试所应该考察哪些方面就很明显了,那就是选择那种最具有区分性的方面来考察。比如,考察面试者的体型特征没有太大意义,因为P(工作好|高),P(工作好|矮),P(工作好|胖),P(工作好|瘦)的概率都差不多;所以,体型特征不具有区分性,这不是面试所应该关注的内容。
面试官应当结合职位的要求明确哪些因素具有比较好的区分性。比如,如果要招一名技术门槛比较高的3D游戏引擎开发工程师,面试者A具有3D游戏引擎开发的经验,但是在基础知识和算法面试方面表现一般;面试者B相反,基础知识和算法面试表现很好,但没有游戏开发经验,而你只能选择其一。你选谁呢?其实,这就是两个条件概率问题P(工作好|经验好,基础一般,算法一般)和P(工作好|没经验,基础好,算法好)。这个问题就留给面试官来判断了,就我个人而言,对于技术门槛较高需要技术积累的职位,经验更加说明问题,因此,我更倾向于面试者A。
下面,我再结合自己的经验谈谈对面试中常见方面的看法。
算法
算法是Google和MS等大公司面试所重点考察的内容。我个人很喜欢算法,曾经参加ACM/ICPC拿过北京赛区的13名。但是,就个人经验来看,我所接触过的绝大多数开发职位而言,算法都不适合作为考察面试者优劣的主要因素。对于普通的非算法性开发职位,考察面试者的算法就相当于考察他打乒乓球好不好一样,与目标“工作好”的相关性太低。就我个人的经验来看,差不多P(工作好|算法好)=50%,也就是算法面试没有太大的区分性。
甚至,还有一种很不好的情况特别多地出现在算法好的面试者身上,我称之为“只磨刀,不砍柴”。什么意思呢?有类人只对什么A*算法,异步编程,JVM类加载机制这种纯技术问题感兴趣,对实现用户需求毫无兴趣。这类人看起来有一定的技术能力,但是对公司来讲贡献十分有限,甚至不如技术一般但认真负责的人。所以,一旦遇到面试者算法好,我就特别留意考察会不会是这种“只磨刀,不砍柴”的人。
另外,虽然我个人不了解Google和MS,但我对于其特别重视考察算法能力的面试策略是持怀疑态度的。即使在这样的世界级大公司,算法虽然重要,但可以想象在项目实施过程所遇到的各种各样问题中,算法问题绝大多数时候不会是主要瓶颈,没有到那种需要每个人都是算法高手的情况。实际上,绝大多数项目真正难点并不是一两个算法瓶颈,甚至也不是单点的技术瓶颈,而是系统性的组织、协调、设计、开发问题,有大量的看起来不是那么有技术含量的脏活累活,也有许多问题是由于信息不足,并不是技术能力强就能克服这些困难。一个团队最好优势互补,有人算法强,有人业务分析能力强,有人擅长后端服务,有人擅长前端界面,有人聪明,有人踏实,这是最好的。如果按照“算法好”的单一标准选材,必定会把许多优秀的人才拒之门外。
基础
基础面试是指考察诸如指针使用、进程线程概念等基础知识的面试,十分类似于大学期末考试题。我曾经以为基础面试十分重要,但是现在不这么看了。在工作中基础的确是重要的,但是在面试过程中,它必须具有区分性才有意义,也就是说P(工作好|基础好)的概率要高,那么考察指针使用,进程线程区别这样的基础题目才有它的意义。我的实际经验是,基础面试并不具有很好的区分性,和算法一样, 差不多P(工作好|基础好) = 50%。同时,基础面试是最容易准备的,中国人有长期的应试教育经验,要准备几个把玩指针题目太容易了。
我曾经遇到过这样的面试者,他的C语言基础和编译、链接等原理掌握得非常好,给我留下了深刻的印象,我给的面试结论是:知识面不宽,只会C语言,但基础很扎实,建议录用。后来的事情证明了那个结论的前半部分是对的,但是”建议录用“错了。他在实际工作中表现得一塌糊涂,不理解需求,不理解整体架构;同时,上班时间不是花在项目上,而是花在阅读诸如《程序员的自我修养》之类的书籍上。最后,这位同事由于长期“不出活”离开了公司。
基础不是不重要,而是“基础好”不足以说明面试者能干好工作,因为基础是属于局部性知识,而实际工作需要综合性能力,二者有天壤之别。C语言、 *** 作系统能考高分,但是不会写程序的人在大学我们还见得少吗? 软件开发就像盖房子,综合能力是设计和搭骨架,基础知识是码砖。张小龙原先Foxmail是Delphi开发的,他它不懂C#,你如果要招聘一个开发.NET Email客户端的人,你考察他对CLR掌握得好不好有意义吗? 让张小龙来开发一个C#版的Foxmail真的会有困难吗? 你招一个精通C#但没有Email客户端开发经验的人来真的比张小龙靠谱吗?
我说基础知识不重要,和古人说的“不积洼步无以至千里”是不是矛盾呢?不矛盾!“洼步”与“千里”是一种可累加关系,但再多的“基础知识”都累加不成“综合能力”。学习软件开发要像持续集成一样,一开始就是一个完整的系统,虽然规模不大,问题很多,但它麻雀虽小五脏俱全,从小系统到大系统,从简单系统到复杂系统逐步演化。
所以,基础好本身不足以说明太多的问题,必须进一步考察综合能力。对于基础面试表现不好的面试者,如果时间允许也要进一步考察,有的面试者其实是有能力的,只是没有进行充分的准备。最理想的状态当然是基础和综合能力俱佳,若不能兼顾,应当综合能力优先。
经验
这里所说的经验不是通过工作了多少年来衡量的,而主要是指面试者的经历,比如,是否完整地实现过一个软件,或作为主要开发者完成过一个项目。经验的重要性在于它能说明一个人的综合能力。从项目的性质、规模和难度,面试官就可以大致判断出面试者的综合能力。如果一个面试者一直在大公司负责一个小模块的开发维护,那么基本可以判断他不具备独立或作为主要开发者承担一个项目的能力,只适合在另一家大公司做类似的事情。对于门槛较高需要长期技术积累的职位,相关经验更显得尤为重要,比如,Linux内核开发,JVM开发,游戏引擎开发,数据库实现,高级UX等。对于这类职位,没有经验的面试者即使综合素质不错也是需要长时间的学习和积累才能胜任。所以,基本上如果确定了你的职位属于此类,那么相关经验毫无疑问应该成为首选因素,换句话说,P(工作好 | 相关经验好)的概率是非常高的。
通过项目经验判断面试者的优劣比通过基础和算法测试更加靠谱,所以,面试过程中面试官应该花比较多的时间听面试者介绍项目经验,并进行深入地探讨交流,了解面试者的知识面、思维能力、表达能力等。同时,可以结合项目提一些基础知识和算法的问题,比如,如果面试者做过C++相关的项目,那就可以问他如何进行内存管理?是否熟悉智能指针?如果面试者的回答不能令人满意,那么就基本上可以判断他的项目做得不是很好。
要注意的是,经验也是一个多维度的事物。比如,C++股票交易中间件系统,这就涉及(C++,中间件,股票) 3个维度。假如面试者A做过C++股票交易客户端,面试者B做过C的股票交易中间件。从语言角度看,A最匹配,从项目性质看,B最匹配,你如何选择?这就是在多个维度中,哪个维度更重要的问题,就这个例子而言,我个人更倾向于B,因为我认为中间件开发经验是主要矛盾,而从C切换到C++并不是问题。所以,面试官需要判断哪一种经验是主要的,而哪一种经验是次要的。比如,我们招聘Android应用开发,这个职位的Android技术门槛并不高,它的真正难点在于做出好的用户体验(UX)。所以,如果一个面试者没有Android的经验我们是可以接受的,但是我希望他在UX方面有经验,至少做过其他平台的移动应用开发。
性格
现在,我来谈我认为最重要的因素:性格。这可能是许多初为面试官的朋友所难以想象的,怎么会是性格最重要呢?说实话,当我意识到这一点时,我自己也很惊讶!说白了,还是 P(工作好|性格好)的概率最高啊。我的实际经验是,如果一个人的性格好,他能把工作做好的可能性是最高的,性格好远比基础好、算法好要靠谱。
一个人如果技术上有缺陷,经验上有不足,但性格好,在团队中是很容易由其他人来补位的,他自己也很容易逐渐补起来;相反,如果一个人的性格不好,所有的技术优势经验优势都发挥不出来,甚至还会起到负作用,而且性格缺点很难改变。我一直谈到实际工作所需要的是综合性的能力,这种综合能力的发挥中性格是至关重要的。项目中不止会遇到技术问题,要涉及沟通、协调,不同的人不同的部门既有合作又有磨擦,如何处理这些事情都需要一个良好的性格。可以说,在开发团队里让你与众不同的不是你从哪个学校毕业,也不是你过去的经验,而是你的性格。
当然,性格是一个复杂的东西,它包含了很多的方面,并非所有方面都是程序员面试所需要关注的。我的经验是可以重点考察这些方面:
1) 态度积极还是消极。有的面试者在谈吐中就会自然给你一种积极上进的感觉,或者你可以在他的经历中发现他积极的因素,这些都不是太难看出来的。相反,有的面试者你能明显感觉到他的消极情绪。积极性在工作中是十分重要的,积极的人能给团队带来朝气,也更易于合作。基本上,如果确定面试者属于态度积极的,他通过我这一关的可能性就会大大增加;相反,如果确定属于态度消极的,即使技术能力不错我也会十分谨慎。
2) IQ。我的经验是,总体来看,聪明的人在工作中的表现更为优秀。在面试中要考察一个人是否聪明并不一定要像Google和MS那样找些专门测试IQ的智力题,其实,你只需要看他讨论问题是不是很有逻辑性,思考和说话是不是反应敏捷就可以做出大致的判断。另外,眼睛是人心灵的窗户,一个人聪明与否,眼睛是会说话的。不过,聪明也不完全是优点,比如,当公司或项目遇到困难时,往往是聪明人先跑掉了,坚守的往往是IQ一般的人。
3) 语言表达能力。语言表达能力也是程序员十分重要的一项素质,它关系到项目中的沟通是否顺畅。面试官可以看看面试者能否用简明的语言介绍清楚曾经做过的项目,能否抓住要点,能否考虑到听者的相关背景。一般来讲,语言表达能力强的人综合能力都不会太差。
4) 是否具有用户意识。有人说程序员是做研发的,哪来什么用户?只有销售、市场人员才会和用户打交道。其实,这是完完全全的错误认识。你写一个模块,甚至一个API,只要有别人用,他就是你的用户。有的程序员设计一个模块或是一个软件总是习惯于从使用者的角度来考虑,尽量地方便使用者,这就是一种良好的用户意识。具有良好的用户意识的人更能考虑别人的感受和整体的需要,而不是单纯地从自己和局部来思考问题。当面试者谈及过去的项目经验时,面试官可以常常站在用户的角度对其进行提问,从这个过程中观察其是否具有良好的用户意识。
5) 如何应对质疑和压力。面试官应该对面试者的回答以及以往项目进行合理的质疑,看看他如何应对。曾经有一位面试者谈到做游戏登录服务器的经历,我就问:“如果登录服务器挂了,怎么办呢”?他说原先虽然没有考虑这个问题,但是可以怎么怎么改进。其实,大家都理解项目中有各种不完美,这里面原因很多,只要面对质疑和压力能从容应对努力往好的方向思考解决就可以了,不需要掩饰缺陷,更不应该有情绪。我遇到过有的面试者,一旦你对其项目提出质疑,他马上产生反抗情绪,或不高兴,或不承认有问题,这很容易一下子看出来他在工作中容不得质疑和批评,这种人要想合作就很困难。
6) 个性特点。许多面试者喜欢在简历上写“精通C++/Linux“,这些字眼看得人麻木,如果有人写”喜欢C++/Linux“,我就会有一种眼前一亮的感觉。“精通”是没有感情色彩的叙述,而“喜欢”包含了面试者的个性,我更愿意看到面试者的个性。我相信对某样东西真正的热情远比你当前对它的掌握程度更为重要。其实,N年的经历告诉我们,同一个班的同学,同一个项目组的同事,虽然每天所学的知识,所接触的工作都是相同的,但其实每个人的成绩和表现差异是十分明显的。那么,到底本质的差异是什么呢?其实,就是每个人的个性。是个性使得有的人业余时间去打球,有的人业余时间去看书,有的人喜欢Linux,有的人喜欢Mac。一个人在团队中扮演的角色也和他的个性有很大的关系。面试官应该引导面试者展现自己的个性,并判断其是否有益于团队。
总结
最后总结起来,我的经验是: 1) 面试官的目标是找到”工作好“的人,一定要围绕这个目标来进行面试,如果把面试当成了算法或 *** 作系统期末考试这就走入了误区;2) 面试过程是通过学历、性格、基础、经验、算法等可以测试的因素去综合判断面试者“工作好”的概率;3) 在各种因素中,性格 >经验 >基础 >算法。性格是最重要的,如果性格不好,所有技术能力都会大打折扣,而且技术缺陷容易弥补,性格缺陷很难改变;经验体现了一个人的综合能力,你可以从面试者过去的经历中判断他能从事哪种工作,不能从事哪种工作;基础和算法则主要起到辅助参考的作用,基础好的程序员一般适应性比较强,学新技术更快,但是切忌单纯从基础来判断一个人的能力。
程序员面试自我介绍(集合15篇)
当换了一个新环境后,我们有必要进行适当的自我介绍,用自我介绍往往可以来展示自己。那要怎么写好自我介绍呢?以下是我整理的程序员面试自我介绍,仅供参考,欢迎大家阅读。
程序员面试自我介绍1
我叫xx,今年22岁,是北京xx大学计算机系统维护专业的学生。
大学四年的学习,积累了丰富的专业知识,广泛的人际关系,培养我成为一个敢于承担责任,对待生活乐观积极,吃苦耐劳的青年。
在专业方面我的主攻方向是计算机工程。
能熟悉掌Windows98/20xx/xxp/20xxServer等系统,对Linuxx、Unixx、有一定的了解。
同时能熟练 *** 作Dreamweaver、Flash、Fireworks、Photoshop、Authoware,能较熟练 *** 作C、Foxxpro、VB、Access、ASP、JSP等语言,同时对SQL、Oracle也有一定程度上的认识。
作为一名计算机专业的大学生,我热爱我的专业并为其投入了巨大的热情和精力。
在学习生活中,我所学习的内容包括了从计算机的基础知识到运用等许多方面。
通过对这些知识的学习,我对这一领域的相关知识有了一定程度的理解和掌握。
程序员面试自我介绍2大家好,我叫xxx,今年29岁,xxxx年七月毕业于华侨大学计算机科学与技术系,毕业至今一直就业于厦门力泰科技有限公司,从事j2ee企业信息化管理系统的开发,目前的岗位是项目经理,负责带领一个3-5人的小团队进行系统开发。
参加工作以来,本人先后独立或主持开发过10几个企业信息化管理系统。其中,**电力有限公司的电费充值卡管理系统、**集团的人力资源管理系统以及移动办公管理平台,这三个系统运行以来深受使用单位的一致好评,为企业节约了人力成本,提高了工作效率。
本人对软件开发具有浓厚的兴趣,工作之余经常钻研技术,关注it技术的发展趋势。对业务需求分析比较透彻,在客户端界面 *** 作的易用性上考虑得比较周全。工作至今,我从一个学徒成长为项目工作组成员,再到现在的项目经理,这几年的提升已让我具备了系统开发独挡一面的能力,而且已连续两年被评为企业优秀员工,这不仅是因为本人在工作岗位上长期都本着刻苦努力、虚心好学的态度,也是领导、师傅耐心教导的成果。
优点:本人具备丰富的工作经验、扎实的技术能力以及优良的代码编写风格,刻苦认真、虚心好学,对业务需求分析比较透彻,不仅能够独立完成任务,也能带领团队完成任务,具有良好的团队协作精神与沟通能力。
缺点:在带领团队完成项目的时候,有时会因为太过与善而显得魄力不足。
程序员面试自我介绍3我叫XXX,广东广州人,硕士研究生,将于20xx年6月毕业于南开大学,专业方向是电路与系统,xx年加入党,我的专业特长是计算机应用程序开发和网络通信。我想从以下三个方面介绍自己。
学习方面,我的学习成绩优秀,本科GPA:86.7,研究生GPA:93.3,两次获得校一等奖学金,并被免试保送到南开大学信息学院,我有较强的科研能力,目前正在参与一个国家自然科学基金项目:行波式微流泵的仿真与电路设计,担任项目组组长,负责项目规划,任务分配和进度检查,目前正处于软件仿真阶段,通过仿真选择制作微流泵的最佳方案参数,设计新式的无阀压电行波式微流泵,为生化反应提供可控的微量样液。
另外还我还作为项目组成员,在xx年参与国家大学生创新性实验计划:便携式无线体域网,主要负责手持终端PDA客户端程序开发,在xx年参加国家自然科学基金项目:SPR多通道生物传感器,主要负责测控电路的C语言程序设计。
实践方面,在研究生阶段,我曾有两次实习经历。一次是xx年暑假,在中南空管局通信网络有限公司网络工程部,我协助工程师维护空管局的华为6503和思科3550主干网,做好主干网的网络监控和数据备份,定期提交网络安全报告,确保网络通畅和信息安全,并给空管局用户提供网络技术支持服务。另一次是xx年暑假,在广州共享网讯科技有限公司运营部,我协助部门经理进行网站的推广,运营和客服工作,并从事网站美化设计的辅助工作。
学生工作方面,在以学习为主的同时,我也积极参加学校课余实践活动。曾担任过信息学院研究生会主席,信息学院团委副书记,学生职业发展协会实践部部长,多隆电子协会财务部长等职务,曾多次获得优秀学生干部和三好学生荣誉称号,组织了包括:信息学院信息会客厅讲座、新生杯足球赛,篮球争霸赛,乒乓球友谊赛,迎新晚会,联谊舞会,南开大学第一届模拟招聘大赛等大中型活动;还曾作为信息学院羽毛球队的选手,协助院羽毛球队获得南开大学校长杯羽毛球团体赛亚军。这些活动培养了我的领导组织协调能力,和团队协作的意识。我相信,这对我以后的工作也会有很大的帮助。
最后,我想总结一下我的工作特点。第一是团队协作意识强,善于与人交流和沟通;第二是动手能力和学习能力突出;第三是做事稳健,态度认真,有一定的组织协调能力;第四是考虑问题全面、仔细,做事有自己明确的想法和计划。我想在走上工作岗位之后,我可以以最快的速度适应工作环境,不断挖掘自己的能力,完善自己,为企业创造效益。我想加入XX公司是因为我喜欢我的专业,也很看好XX公司的未来发展,在这里我可以学以致用,这让我有很大的成就感和幸福感。同时我也很欣赏XX公司的企业文化,很喜欢XX公司的工作环境。我愿意成为企业一员,为企业的发展贡献自己的一份力量。我的职业生涯目标是,做一个既懂技术,又懂业务的复合型人才。
程序员面试自我介绍4java程序员应试者应充分利用各种个人资源。想了解java程序员面试指南?除了前面提到的应试者面带微笑、目光交流、坐姿端正等表情、身体语言外,请以沉稳平静的声音、以中等语速、以清晰的吐字发音、以开朗响亮的声调给考官以愉悦的听觉享受,声音小而模糊、吞吞吐吐的人,一定是胆怯、紧张、不自信和缺乏活力与感染力的。面试中java程序员自我介绍的重要性:通过自我介绍,主动地向面试考官推荐自己,这是面试组成结构的重要内容,同时也是面试测评的重要指标。下面一起来透视java程序员面试指南,java程序员自我介绍。
java程序员面试指南--实力是关键
可以分为实际 *** 作的能力和理论上的知识。虽然上机很少,但是毫无疑问的是,如果你在IDE下很强,那么你就有很强的自信。有自信不一定行,但没有自信一定不行,我想大多数人都是这样认为的吧!理论的东西你可以花点时间系统的研究一下,不过如何才算系统呢?我也不知道,我是把《java2核心技术》看了两遍。
java程序员面试指南--态度是成功的催化剂
态度说穿了就是面试技巧问题,你的实际态度不重要,重要的是如何让他认为你态度不错,是个“知书达理”的好孩子。将来是否好管理是老板一类的人最在意的。
java程序员面试指南--经验是能力体现
这个没有什么好说的,一般来说经验越多,能力越强。如果他要求的工资不高的话,当然优先啦!小公司通常都是这么想的。
java程序员面试指南--运气也需要
我有同学,大学毕业之后在广州找了两个月没有找到工作,主要原因一是基础差点,加上没有经验,笔试,面试都过不去。偏偏有一次他去应聘,笔试答完之后,本来是技术员给他面试的,经理刚好过来。就问了他是哪里人,大学有没有补考之类的问题,五分钟之后就让他下个星期过来上班,月薪2500。后来他了解了一下,经理录用他的理由很简单,我同学是安徽人,经理接触过的安徽人给他的印象很好,什么踏实,肯干,任劳任怨。总之就是安徽人有优先权。不过我怎么感觉主要的理由是“比较听话”。
java程序员自我介绍--报出自己的姓名和身份
可能应试者与面试考官打招呼时,已经将此告诉了对方,而且考官们完全可以从你的报名表、简历等材料中了解这些情况,但仍请你主动提及。这是礼貌的需要,还可以加深考官对你的印象。
java程序员自我介绍--简单地介绍一下你的学历、工作经历等基本个人情况
请提供给考官关于你个人情况的基本的、完整的信息,如:学历、工作经历、家庭概况、兴趣爱好、理想与报负等。这部分的陈述务必简明扼要、抓住要点。例如介绍自己的学历,一般只需谈本专科以上的学历。工作单位如果多,选几个有代表性的或者你认为重要的介绍,就可以了,但这些内容一定要和面试及应考职位有关系。请保证叙述的线索清晰,一个结构混乱、内容过长的开场自,会给考官们留下杂乱无章、个性不清晰的印象,并且让考官倦怠,削弱对继续进行的面试的兴趣和注意力。
应试者还要注意这部份内容应与个人简历、报名材料上的有关内容相一致,不要有出入。在介绍这些内容时,应避免书面语言的严整与拘束,而使用灵活的口头语进行组织。这些个人基本情况的介绍没有对或错的`问题——都属于中性问题,但如果因此而大意就不妥了。
java程序员自我介绍--以经验来说明自己的能力
接下来由这部份个人基本情况,自然地过渡到一两个自己本科或工作期间圆满完成的事件,以这一两个例子来形象地、明晰他说明自己的经验与能力,例如:在学校担任学生干部时成功组织的活动或者如何投入到社会实践中,利用自己的专长为社会公众服务或者自己在专业上取得的重要成绩以及出色的学术成就。
java程序员自我介绍--说明应聘该职位的原因
接下来要着重结合你的职业理想说明你应考这个公务员职位的原因,这一点相当重要。你可以谈你对应考单位或职务的认识了解,说明你选择这个单位或职务的强烈愿望。原先有工作单位的应试者应解释清楚自己放弃原来的工作而做出新的职业选择的原因。你还可以谈如果你被录取,那么你将怎样尽职尽责地工作,并不断根据需要完善和发展自己。当然这些都应密切联系你的价值观与职业观。不过,如果你将自己描述为不食人间烟火的、不计较个人利益的“圣人”,那么考官们对你的求职动机的信任,就要大打折扣了。
对于java程序员自我介绍,这里我们介绍了一条清晰的线索,便于你组织你的自我介绍。为了保证结构明确,有条有理,你可以多用短句子以便于口语表述,并且在段与段之间使用过渡句子,口语也要注意思路、叙述语言的流畅,尽量避免颠三倒四,同一句话反复说几遍的“粘糊劲,同时不要用过于随便的表述。而在java程序员面试指南里建议读者不要表示将来踏上工作岗位,将“一定要……“绝对……诸如此类的保证,似乎在做就职演讲。这些例子很多画蛇添足似的自我介绍不但不会为你的形象增添色彩,会“越抹越黑”!。
程序员面试自我介绍5我叫xxx,今年21岁,毕业于xxxx信息工程大学计算机科学与技术专业,拥有扎实的core java基础,良好的编程风格;熟悉jsp+servlet+javabean模式的web开发;熟悉struts,hibernate,spring等开源框架,了解ejb; 熟悉tomcat,jboss服务器等,熟悉基于linux及unix环境下的软件开发;
在学校期间有多次社会实践经历,曾参与过学院网上虚拟实验室开发的需求分析,大学期间多次担任多课程的课代表。虽然实际工作经验不是很足,但军校四年培养了我充分的自信心和敬业精神以及扎实的学科基础知识和较强的专业技能,四年军校生活中,我严格要求自己,自觉、遵纪、守时。本人坦诚且有责任心,有独立进取的品性,勤于动手、善于动脑,适应新环境能力很强。能在最短时间内完成从学生到职业工作人员的转型,尽自己最大的努力融入新的工作生活。
请各位考官多多指教,谢谢!
程序员面试自我介绍6女士们,先生们,早上好!很荣幸有机会参加此次面试。我希望今天我能有好的表现。我希望此次面试能够成功。现在,请允许我自我介绍一下。我今年26岁,出生于山东省。我毕业于青岛大学电子专业。我在20xx年毕业获得学士学位。大学期间,我努力学习,通过了大学英语六级考试,掌握了基本的专业知识。成为电子工程师是我长期渴望的梦想。我渴望有机会施展我的才能。
20xx年七月,我就职于青岛一家小的私人公司担任技术助理工程师。由于我的才能得不到足够的施展,我决定更换工作。在20xx年8月,我前往北京为一家外资企业工作担任自动
软件测试工程师。因为我想更换一下工作环境,想找一个更具挑战性的工作。而且我认为摩托罗拉公司是一个国际公司,我可以在这样的工作环境里收获更多。这就是我来这里面试的原因。我觉得我是一位具有良好团队精神、诚恳的人。而且,我能够在高强度压力下进行工作。我非常有信心我有能力胜任该公司的工程师职位。
感谢各位给我此次机会。
程序员面试自我介绍7我叫xxx,今年21岁,毕业于xx解放军信息工程大学计算机科学与技术专业,拥有扎实的core java基础,良好的编程风格;熟悉jsp+servlet+javabean模式的web开发;熟悉struts,hibernate,spring等开源框架,了解ejb; 熟悉tomcat,jboss服务器等,熟悉基于linux及unix环境下的软件开发;
在学校期间有多次社会实践经历,曾参与过学院网上虚拟实验室开发的需求分析,大学期间多次担任多课程的课代表。虽然实际工作经验不是很足,但军校四年培养了我充分的自信心和敬业精神以及扎实的学科基础知识和较强的专业技能,四年军校生活中,我严格要求自己,自觉、遵纪、守时。本人坦诚且有责任心,有独立进取的品性,勤于动手、善于动脑,适应新环境能力很强。能在最短时间内完成从学生到职业工作人员的转型,尽自己最大的努力融入新的工作生活。
请各位考官多多指教,谢谢!
程序员面试技巧,自我介绍,亲身总结
一段短短的自我介绍,其实是为了揭开更深入的面谈而设计的。
一、两分钟的自我介绍,犹如商品广告,在有限的时间内,针对客户的需要,将自己最美好的一面,毫无保留地表现出来,不但要令对方留下深刻的印像,还要即时引发起购买欲。
程序员面试自我介绍8本人热情随和,具有进取精神和团队精神,擅长动手,有比较强的动手能力,勇于面对困难和挑战,有较好的分析问题与解决问题的能力;工作认真负责,积极上进,能够吃苦耐劳,有良好的职业素质;掌握C#。NET、asp。.net、ajax、xml、javascript、html、css、div+css等技术。能够熟练使用sqlmysqloracle数据库!有webform、winform相关项目开发经验!了解JAVA语言能够使用JSP开发各种项目了解SSH框架!
毕业后曾在xx公司任程序员,通过一年的工作和学习,使我对当前主流的三层、MVC架构,asp.net有了更深的认识,能够熟练地开发相关项目。同时培养了我的团队合作精神和沟通能力,可以让我更快的融入新的工作团队,更好的为公司做出自己的贡献,实现自己的价值。
本人致力与追求更好的软件技术,能够在这个行业中取得优秀的成绩,在公司团队中成为中坚的技术人才,为公司创造更多的财富从而让自己成为团队中一个不可或缺的份子!
程序员面试自我介绍9我叫xxx,今年21岁,毕业于xx解放军信息工程大学计算机科学与技术专业,拥有扎实的core java基础,良好的编程风格;熟悉
jsp+servlet+javabean模式的web开发;熟悉struts,hibernate,spring等开源框架,了解ejb; 熟悉tomcat,jboss服务器等,熟悉基于linux及unix环境下的软件开发;
在校期间有多次社会实践经历,曾参与过学院网上虚拟实验室开发的需求分析,大学期间多次担任多课程的课代表。虽然实际工作经验不是很足,但军校四年培养了我充分的自信心和敬业精神以及扎实的学科基础知识和较强的专业技能,四年军校生活中,我严格要求自己,自觉、遵纪、守时。本人坦诚且有责任心,有独立进取的品性,勤于动手、善于动脑,适应新环境能力很强。能在最短时间内完成从学生到职业工作人员的转型,尽自己最大的努力融入新的工作生活。
请各位考官多多指教,谢谢!
程序员面试自我介绍10下面请看由应届毕业生面试频道推荐的PHP程序员面试自我介绍
PHP程序员自我介绍的时候,一般都使用这几个要点来进行来说明的。
第一关于PHP程序员是否有良好的职业道德和工作态度,需要有工作认真、踏实,责任心以及很强的进取心。
第二关于PHP程序员是否有良好的客户交流沟通能力以及需求理解能力,从而能够拥有较强的协作精神和团队意识。
第三关于PHP程序员的思维能力,就是在事件中能够找出所引发的多种有可能的原因,以及确定行为的不同后果,从而发现复杂事物之间所存在的错综联系,最后逐步排除不太相关的信息,准确定位问题所在。
第四关于PHP程序员团队合作,程序员能够主动愿意与他人合作,以及与其他成员进行沟通交流,彼此分享信息、知识与资源。
第五关于PHP程序员主动性,程序员能够及时得发现机遇与问题,并且针对问题快速展开行动。
首先就是PHP程序员是否熟练掌握一种或以上开发语言,如知道怎么将PHP独特的语法混合了C、Java、Perl 以及PHP等一些自创新的语法。PHP程序员知道如何使用,可以让它比 CGI 或者 Perl 更快速的执行动态网页。其次就是否熟悉Oracle、Mysql等数据库。
下面就是还需要PHP程序员是否具有较强的文档撰写能力,因为使用PHP做出的动态页面与其他的编程语相比,PHP是可以将程序嵌入到HTML文档中去执行的,因此能够使执行得效率与完全生成HTML标记的相比,CGI要高许多。接下来就是PHP程序员是否具备独立分析和解决问题的能力,这个能力的有无,将决定着PHP程序员自我介绍的成功与否,也是打动别人的支柱信息。
程序员面试自我介绍11我叫xxx,广东广州人,硕士研究生,将于20xx年6月毕业于南开大学,专业方向是电路与系统,xxxx年加入党,我的专业特长是计算机应用程序开发和网络通信。我想从以下三个方面介绍自己。
学习方面,我的学习成绩优秀,本科GPA:86.7,研究生GPA:93.3,两次获得校一等奖学金,并被免试保送到南开大学信息学院,我有较强的科研能力,目前正在参与一个国家自然科学基金项目:行波式微流泵的仿真与电路设计,担任项目组组长,负责项目规划,任务分配和进度检查,目前正处于软件仿真阶段,通过仿真选择制作微流泵的最佳方案参数,设计新式的无阀压电行波式微流泵,为生化反应提供可控的微量样液。
另外还我还作为项目组成员,在xxxx年参与国家大学生创新性实验计划:便携式无线体域网,主要负责手持终端PDA客户端程序开发,在xxxx年参加国家自然科学基金项目:SPR多通道生物传感器,主要负责测控电路的C语言程序设计。
实践方面,在研究生阶段,我曾有两次实习经历。一次是xxxx年暑假,在中南空管局通信网络有限公司网络工程部,我协助工程师维护空管局的华为6503和思科3550主干网,做好主干网的网络监控和数据备份,定期提交网络安全报告,确保网络通畅和信息安全,并给空管局用户提供网络技术支持服务。另一次是xxxx年暑假,在广州共享网讯科技有限公司运营部,我协助部门经理进行网站的推广,运营和客服工作,并从事网站美化设计的辅助工作。
学生工作方面,在以学习为主的同时,我也积极参加学校课余实践活动。曾担任过信息学院研究生会主席,信息学院团委副书记,学生职业发展协会实践部部长,多隆电子协会财务部长等职务,曾多次获得优秀学生干部和三好学生荣誉称号,组织了包括:信息学院信息会客厅讲座、新生杯足球赛,篮球争霸赛,乒乓球友谊赛,迎新晚会,联谊舞会,南开大学第一届模拟招聘大赛等大中型活动还曾作为信息学院羽毛球队的选手,协助院羽毛球队获得南开大学校长杯羽毛球团体赛亚军。这些活动培养了我的领导组织协调能力,和团队协作的意识。我相信,这对我以后的工作也会有很大的帮助。
最后,我想总结一下我的工作特点。第一是团队协作意识强,善于与人交流和沟通第二是动手能力和学习能力突出第三是做事稳健,态度认真,有一定的组织协调能力第四是考虑问题全面、仔细,做事有自己明确的想法和计划。我想在走上工作岗位之后,我可以以最快的速度适应工作环境,不断挖掘自己的能力,完善自己,为企业创造效益。我想加入xxxx公司是因为我喜欢我的专业,也很看好xxxx公司的未来发展,在这里我可以学以致用,这让我有很大的成就感和幸福感。同时我也很欣赏xxxx公司的企业文化,很喜欢xxxx公司的工作环境。我愿意成为企业一员,为企业的发展贡献自己的一份力量。我的职业生涯目标是,做一个既懂技术,又懂业务的复合型人才。
程序员面试自我介绍12我叫xxx,今年21岁,毕业于xx解放军信息工程大学计算机科学与技术专业,拥有扎实的core java基础,良好的编程风格;熟悉jsp+servlet+javabean模式的web开发;熟悉struts,hibernate,spring等开源框架,了解ejb; 熟悉tomcat,jboss服务器等,熟悉基于linux及unix环境下的软件开发;在学校期间有多次社会实践经历,曾参与过学院网上虚拟实验室开发的需求分析,大学期间多次担任多课程的课代表。虽然实际工作经验不是很足,但军校四年培养了我充分的自信心和敬业精神以及扎实的学科基础知识和较强的专业技能,四年军校生活中,我严格要求自己,自觉、遵纪、守时。本人坦诚且有责任心,有独立进取的品性,勤于动手、善于动脑,适应新环境能力很强。能在最短时间内完成从学生到职业工作人员的转型,尽自己最大的努力融入新的工作生活。
请各位考官多多指教,谢谢!
程序员面试自我介绍13您好,很荣幸有机会来参加公司的面试。我叫xxx,家乡在xx,就读于xxx大学,专业是电子信息科学与技术,今年(20xx)6月份毕业。因为喜欢计算机和软件开发,所以来面试这个职位。我从两个方面谈一下自己能胜任这份工作的地方吧。首先是专业技能方面,我在大学期间学习过C++和数据结构方面的课程,在这块有很好的的基础,在大学专业课上也学习了很多嵌入式相关的知识,比如数电模电和DSP技术。另外我通过学习,做过“通讯录”、“停车场”、“聊天室”等项目,C和C++知识掌握得很好。然后是综合素质方面,我在大学期间担任过班级团支书,组织过班级聚餐和集体活动,也在学生会做过干事,对于一些活动的流程比较熟悉,也熟悉怎样与交流。另外我对工作充满热情,不喜欢半途而废,如果能得到这份工作的话,我一定会坚持不懈,尽最大的努力为公司创造价值。我相信公司需要一个整体素
质都高的人,希望自己能满足公司的需求。
我的自我介绍说完了,谢谢!
程序员面试自我介绍14各位尊敬的考官:
大家下午好!
我叫xx,我是一名即将毕业本科学生,我的专业特长是:能熟练地运用编程工具Eclipse开发应用软件,熟悉C,Java,SQL,Oracle,JSP,SSH等,SQLServer20xx的 *** 作。熟悉dreamweaver等工具编排和快速制作网页。对Internet有一定的使用经验和理解。
对于软件测试技术,软件质量保证以及软件项目管理有一定的了解。我力求上进、吃苦耐劳,勤奋工作,我通过积极参与社会实践活动,锻炼了我组织、管理和交际的能力,培养了我全面的综合素质。这一切赋予了我作为当代青年所必备的能力、胆识和责任心,也磨练了我吃苦耐劳的精神和了解了为人处世的道理。我会尽我所能为公司服务,把公司的事当作自己的事处理。我希望在新的岗位中发挥我的创造性、积极性,用我所学,为您所用。我相信没有,只有更好,在您的信任和培养下我坚信我会做得更好!
程序员面试自我介绍15各位考官:
大家好,我是计算机专业的面试者xxxx,我此次应聘的职位是软件工程师,这份工作不仅与我的专业对口,同时也是我的特长与兴趣所在。现在我就从以下三个方面介绍自己:
1)学习能力:我有较强的科研能力,能熟练的进行Windows和LINU *** 作,并能使用VB,DELPHI等语言编程。能运用网页三剑客Photoshop软件进行相关工作。
2)实践能力:我的专长是软件开发,我希望能从事这方面的工作经验,并且我曾经发过多个系统,如人事档案管理系统,工资管理系统等等。
3)交际能力:我的性格沉稳,能坐得住,对IT行业的工作,具有非常好的适应能力,而且为人谦和,具有很强的组织和协调能力,富有的事业心和责任感使我能够面对任何困难和挑战。
从以上的简单自我介绍,我希望公司能给我一个展示自己能力的机会,让我我可以学以致用,同时我也很欣赏xxx公司的企业文化与工作环境。我愿意成为企业一员,为企业的发展贡献自己的一份力量。我的职业生涯目标是,做一个既懂技术,又懂业务的复合型人才。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)