⑴ 求大神,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
四、開發工具
五、熟悉一種框架