⑴ 求大神,java初级程序员,中级程序员,高级程序员的区别。 架构师主要是做什么的。
2019年传智播客的变革大会特别提到程序员这个级别问题。
引用毕向东老师的话回答你:
就拿Java语言培训为例,2003年,只需要掌握javaweb和数据库,就可以找到很好的工作。到了2008年,不仅要会使用多种框架技术还要有实战项目的经验。到了2018年,具备多个领域的行业级的解决方案成为企业用人首选。可见,随着行业的快速发展,对人才的要求越来越高。
初级程序员一般所掌握的内容很有局限,会一个项目也仅仅是一个项目当中的思路和逻辑思维。遇到需求,一般就是先去网上搬砖。
中级程序员相对来说遇到需求来说,会有一些自己的经验和行业的看法。并且在工具使用上更娴熟,对框架也有自己的理解。
高级程序员分为技术层和管理层的,一般管理层的对业务来说,格局相对来说更大。技术层的,我想是那种精通各种框架的使用,甚至可以写出来一个新的框架。
总结:现在各大企业当中技术骨干,都是中级程序员。高级程序员一般已经晋升为管理层,要不是技术专家,要不就是架构师。但是初级到中级这个阶段,差的不仅是三四年的工作经验。如果在当下想要更了解关于程序员分级别这个问题,可以看看传智播客的破局发布会。是专门针对当下IT行业用人需求的分析和看法。
⑵ JAVA初级程序员要考哪些内容
JAVA初级程序员
现在有 SCJP 这个比较权威点(SUN 公司的)~~~在这个考试费用是 1250元 如果你是在大学
还可能享受优惠 只要 450 元
考点:
Section 1 Declarations and Access Control
目标1, 创建数组
采用不同的格式来编写任一基本数据类型数组的声明,构造及初始化的代码。
数组是一连串对象或基本数据,它们必须同型,并以一个标识符封装在一起。数组好象一个对象,通过new关键字来创建。
声明数组
数组的声明并不能为数组分配内存。声明时数组不能有大小信息,也就是说编译器并不允许你告诉它究竟数组有多大,它只是一个reference(引用),并没有对应的空间。声明数组的方式有: int[] a1; int 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++不同,数组知道自己的大小,当数组越界时,会抛出异常。数组具有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(initialization; conditional expression;increment)
逗号运算符
它只能用于for的控制表达式中。
for(int i=1,j=i+10;i<5;i++,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.e.xjtu.scjp 这样就可以产生独一无二的类名:cn.e.xjtu.scjp.Question
注意: 包声明语句必须位于其它语句之前,除了注释语句
导入语句
导入语句位于包语句之后,其它语句之前。导入语句是为了方便代码编写,导入相应的包后,包中的类可以仅以局部名使用,而不以全限定名来使用。
Import cn.e.xjtu.scjp.*;
Question q=new Question();
或
cn.e.xjtu.scjp.Question q=new cn.e.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==i3; false
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
⑶ java认证和初级程序员哪个证书更好
现在还没有比较好的java资格认证,应聘的时候也很少有公司要看java的证书,相比之证书来说,项目经验是公司更看重的品质
另外如果你是专门学计算机的,初级程序员就不要考了,至少也要中级以上才有用
⑷ 现在招JAVA初级程序员都需要什么要求
既然是初级程序,前提就是己经说明了之前基础不好的.也没什么经验的.
所以你要表现出:
1. 你有很强的自学能力
2. 你对工作充满热情,能胜任高强度作业.顶住压力
3. 你办事是脚踏实地的,绝不是那种学了两招就跳槽的人
4. 你进公司是来学东西的,不是要赚钱的.
5. 你是尊师重教的,对你的在公司的导师会无比尊重的.
当然有些东西是需要你表现出来的,而不是让你说出来的,说出来就显得有些假,哈哈哈
我就专门招人的,这五点也是我的一些见解. 当然现在我们还不招初级的程序员
⑸ java初级程序员工资收入多少
根据学历不同、所在的城市而有所不同,但工资浮动范围应该在3000-6000之前。
解释:通常本科毕业生在一线城市,刚开始就业能拿到4000-6000,二线的可能要更低一些。也要看能力的,如果谈的好,并且之前已经有一段工作经历(初级也是有不同等级的),可能会高一些。
备注:这个没有固定标准的,只能是实际情况下,进行具体分析。
⑹ 初级Java程序员要怎样发展,如何晋升
作为新手,你会先从实习生或者初级程序员做起,然后随着自己技术的成熟,逐步的达到中级工程师的水准,能够独立完成一部分开发任务,如果达到高级工程师的水准的话,你还需要再学习更多的技术,这些技术不仅仅局限于Java,如js和数据库等,当你对整套技术都非常精通时,你便是一个真正的高级工程师,而Java则只是你所掌握的主要技术之一。
2.实际上有不少初中级Java程序员或项目经理转行做产品经理了,产品经理不仅仅需要对技术颇为了解,更需要懂得策划和规划,了解项目管理和产品管理的知识,并要具备非常好的沟通能力。当然,一个刚刚从业的人很难跨入产品经理的行列,一般做1到2年开发工作的人可能会跨到这个行业来。
3.不少人学了Java后,可能往软件工程方向发展,这个时候参与具体的编码工作不会那么多,主要要做的工作是需求分析,项目管理,随着水平的提升,有可能做到系统架构师的职位,一般能做系统架构的都是大牛或者高学历者,因为这不仅仅需要掌握Java技术,更需要掌握数据库和算法逻辑等知识。
⑺ java初级程序员能干什么
首先我要和你说说初级程序员都要掌握什么:
1、java的基础知识,如果把要掌握的知识和所要看的书籍联系起来的话,你要看《Thinking in java 》、《java核心卷1、2》,如果你把这些书看完了,说明你对java有了一定深度的了解。
2、你对代码的清晰度和易理解性有比较深入的理解,能写出比较友好的代码,而不是晦涩的代码,相关书籍:《代码大全》(我的项目经理力推)、《重构改善即有代码设计》、《代码之美》。看完这些之后你就会感觉到以前写的代码简直就是一种耻辱。
3、数据库相关,现在大都开发离不开数据库,数据库也成了程序员必备素质。由于数据库大多了。就要看你们公司和你自己的喜好了。不过大都的sql还是可以通用的,除了数据库本身的方言和部分函数之外。对了除了要掌握SQL,还要掌握存储过程。这个也是必须的。
这些东西掌握了之后你就离合格的初级程序员不远了。其中也不乏还有一些我没有列出,这也符合计算机中的8/2原则啊。我说的是那80%,而那20%,可以看看服务器啊、框架啊、什么什么的。慢慢来。
⑻ 初级java程序员要把代码掌握到什么程度
先随便拿本书把java基础过一遍、把相关的开发工具都了解一遍,选择一个开发工具(eclipse)操作,然后网上随便找个例子 熟悉下MVC模式。这是传统的。平均待遇一般
其他你可以选择做android。或者做hadoop 这两个前提java基础要好。
现在android 火的发紫,具体情况你可以上网查查。
刚开始说去怎么样的公司不好说,你得拿说怎么样的公司需要你,然后问大家合适不,能不能学到东西,对应届生说有项目做,待遇差不多就行。很多时候是要靠自己的,公司只是一个平台!
⑼ 如何成为一名JAVA初级程序员
想成为一个合格的JAVA初级程序员应该具备如下知识:
一、面向对象的知识
二、JAVA语法
三、JSP和HTML
四、开发工具
五、熟悉一种框架