別吃哥的菜
牛逼的人總是讓人羨慕,但如何才能讓自己成為牛逼的人對(duì)我們來說更重要,本文分享的是如何才能成為java高級(jí)程序員,你和java高級(jí)程序員只差這一篇雞湯!干了這碗雞湯,未來不可限量!1、離開舒適區(qū),提高個(gè)人代碼能力不安于現(xiàn)狀,高級(jí)程序員一般都具有豐富的項(xiàng)目經(jīng)驗(yàn),經(jīng)驗(yàn)是能力最好的試金石,即使在碰到未知的問題,豐富的項(xiàng)目經(jīng)驗(yàn)也不會(huì)讓你覺得就束手無策。程序員是一個(gè)技術(shù)跨度很大的工種,對(duì)某種既定環(huán)境語言的依賴性太強(qiáng),知識(shí)和技能都無法很好的遷移。2、將復(fù)雜的問題簡單化處理喬布斯曾經(jīng)說過,簡單便能移動(dòng)一座大山。一個(gè)高級(jí)程序員之所以讓人覺得牛逼,不僅僅能用寫出優(yōu)雅簡潔的代碼,更重要的是他們還能將這種化復(fù)雜為簡單、化繁為簡的功力內(nèi)化至各項(xiàng)工作,不管是面對(duì)多復(fù)雜的項(xiàng)目、多棘手的 bug 都能面不改色、心不跳,步步拆解問題,逐一各個(gè)擊破。3、自我總結(jié),提升學(xué)習(xí)和解決問題能力代碼能力、工作狀態(tài)只是一個(gè)高級(jí)程序員區(qū)別于普通程序員的外在表現(xiàn),王者和青銅的核心區(qū)別在于思考方式和解決問題能力的區(qū)別。高級(jí)程序員可能每天會(huì)花半個(gè)小時(shí)總結(jié)當(dāng)天的項(xiàng)目經(jīng)歷,反思自己的不足,思考問題解決或優(yōu)化的方案。區(qū)別于初級(jí)程序員,高級(jí)程序員總結(jié)問題的往往能從本質(zhì)出發(fā),不會(huì)只停留在表面,弄清問題內(nèi)在聯(lián)系,抓住問題關(guān)鍵。這也就解釋了為什么拿到一個(gè)項(xiàng)目需求,很多高級(jí)程序員不會(huì)首先去想代碼實(shí)現(xiàn),而是去想需求與架構(gòu)的行為。4、責(zé)任心和需求理解能力高級(jí)程序員對(duì)自己的要求不僅限制于完成項(xiàng)目、解決問題本身,往往還會(huì)去思考并權(quán)衡需求涉及的一切,比如如何去支持設(shè)計(jì)模式、庫、框架、重構(gòu)和流程等,從內(nèi)核到外層界面,既重視功能需求,還會(huì)注意到拓展性能、穩(wěn)定性等需求,甚至還需要評(píng)估設(shè)計(jì)模塊對(duì)整個(gè)項(xiàng)目中的影響及潛在的威脅??偨Y(jié):如何才能成為高級(jí)程序員,關(guān)鍵還是思想,學(xué)習(xí)的思想、總結(jié)的思想、創(chuàng)新的思想!
豌豆大晟
宏觀方面
一、 JAVA。
要想成為JAVA(高級(jí))工程師肯定要學(xué)習(xí)JAVA。一般的程序員或許只需知道一些JAVA的語法結(jié)構(gòu)就可以應(yīng)付了。但要成為JAVA(高級(jí))工程師,您要對(duì)JAVA做比較深入的研究。您應(yīng)該多研究一下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、線程。如果可能,希望您對(duì)JAVA的所有包都瀏覽一下,知道大概的API,這樣您就發(fā)現(xiàn)其實(shí)您想實(shí)現(xiàn)的很多功能,通過JAVA的API都可以實(shí)現(xiàn)了,就不必自己費(fèi)太多的腦經(jīng) 了。
二、 設(shè)計(jì)模式。
其實(shí)寫代碼是很容易的事情,我相信您也有同感。但如何寫得好就比較難了。這個(gè)“好”字包括代碼可重用性,可維護(hù)性,可擴(kuò)展性等。如何寫出好的代碼往往要借助一些設(shè)計(jì)模式。當(dāng)然長期的代碼經(jīng)驗(yàn)積累,只要您用心,會(huì)使您形成自己代碼風(fēng)格。相信您的代碼也比較符合代碼的可重用性,可維護(hù)性,可擴(kuò)展性。但既然前人已經(jīng)給我們總結(jié)出了經(jīng)驗(yàn),我們何不踩著前人的肩膀前進(jìn)?
三、 XML。
現(xiàn)在的系統(tǒng)中不使用XML幾乎是不可能的。XML的功能非常強(qiáng)大,它可以做數(shù)據(jù)轉(zhuǎn)換、做系統(tǒng)的配置、甚至可保存您的系統(tǒng)業(yè)務(wù)數(shù)據(jù)。因此您必須了解XML,包括它的語法,結(jié)構(gòu)。您還需要比較熟練的使用解析XML的一些API,比如JDOM,SAX等,因?yàn)樵谖覀円话愕捻?xiàng)目中,XML往往擔(dān)當(dāng)系統(tǒng)配置信息的作用,您需要用這些API解析這些配置信息,開發(fā)完美的項(xiàng)目。
四、 精通使用一種或兩種框架。
“框架都會(huì)有許多可重用的代碼,良好的層次關(guān)系和業(yè)務(wù)控制邏輯,基于框架的開發(fā)使你可以省出很多的開發(fā)成本”。這里希望您能精通,更多的是希望您能通過框架的使用了解框架的思想。這樣您在開發(fā)一個(gè)項(xiàng)目時(shí)思路會(huì)開闊一些,比如您會(huì)想到把SQL語句與您的JAVA代碼分開,再比如您會(huì)考慮把您的業(yè)務(wù)邏輯配置到XML或者數(shù)據(jù)庫中,這樣整個(gè)項(xiàng)目就很容易擴(kuò)張了。
五、 熟悉主流數(shù)據(jù)庫。其實(shí)真正比較大的項(xiàng)目都是有人專門做數(shù)據(jù)庫的,但往往很多項(xiàng)目要求作為(高級(jí))工程師的您也參與數(shù)據(jù)庫的設(shè)計(jì)以及SQL的編寫。所以為了更好的為國家做貢獻(xiàn),建議您還是多了解一些主流數(shù)據(jù)庫,比如SQLSERVER,ORACLE,多連接SQL和存儲(chǔ)過程以及觸發(fā)器。如果您不是“科班”出身,您還需要補(bǔ)充一些數(shù)據(jù)庫原理方面的知識(shí)。
六、 精通一種或兩種WEBServer。
因?yàn)樽鳛镴AVA工程師,特別時(shí)想成為高級(jí)JAVA工程師的您,您不可避免地要部署您的項(xiàng)目到WebServer上,而且只有當(dāng)您精通一種WebServer,您才可能最大限度地使用它的資源,這往往可以節(jié)省很多時(shí)間和精力。
七、 UML。
您肯定想成為高級(jí)工程師,因此您有必要了解或熟練或精通UML,這取決于您有多大決心想成為高級(jí)工程師和項(xiàng)目經(jīng)理。在比較正規(guī)的開發(fā)團(tuán)隊(duì)中,UML是討論項(xiàng)目的交流工具,您要想做一個(gè)軟件工程師,您至少要能看懂,您要想做高級(jí)工程師,您要能通過它來描述您對(duì)項(xiàng)目的理解,盡管這不是必須,但卻很重要。
八、 站在高度分析問題:
這不是一個(gè)知識(shí)點(diǎn),也不是通過書本就能學(xué)得到的。只所以提到這一點(diǎn),是因?yàn)槲冶饶€著急,我希望您更快的成為一個(gè)高級(jí)的軟件工程師,而不是一個(gè)一般的軟件工程師。希望您在工作中多向您的系統(tǒng)分析員、需求分析員、系統(tǒng)設(shè)計(jì)員學(xué)習(xí),多站在他們角度上去看您在開發(fā)的項(xiàng)目。在最好在項(xiàng)目之初先在您的腦海里對(duì)項(xiàng)目有個(gè)大致的分析、設(shè)計(jì),然后和他們進(jìn)行比較,找找差別,想想缺點(diǎn)。
九、 工具。
您在這個(gè)階段可能接觸到不同的工具了,盡管您還需要使用JB或者IDEA,但能可能對(duì)ROSE,Together要多了解一些,因?yàn)槟婾ML了。不要再對(duì)Dreamweaver等HTML編輯器情有獨(dú)鐘了,那些JSP頁面讓初級(jí)程序員去寫吧
微觀方面
Java部分
這是最基礎(chǔ)的,對(duì)于一個(gè)java高級(jí)開發(fā)/設(shè)計(jì)人員,你需要對(duì)這一部分達(dá)到精通的水平,重點(diǎn)內(nèi)容如下:
a.面向?qū)ο缶幊趟枷?封裝繼承多態(tài)接口)
b.字符串處理
包,包等常用包
異常處理
高級(jí)部分
I/O流
多線程技術(shù)
網(wǎng)絡(luò)編程
Swing
后兩項(xiàng)可以了解即可,如果項(xiàng)目需要可以深入研究
3.前端基本技能
* HTML + CSS網(wǎng)頁開發(fā)
* JavaScript
* Jquery
* 瀏覽器兼容性 CSS hack(了解)
4.熟練使用JSP + Servlet進(jìn)行開發(fā)
設(shè)計(jì)模式,原理,以及相關(guān)框架,如Struts
框架
7.緩存技術(shù) session & cookie
8.熟練使用一種以上Java開發(fā)工具(Eclipse/MyEclipse/Jbuilder/Jcreator/IntelliJIEDA/NetBeans)
9.熟練使用XML
JDOM SAX
設(shè)計(jì)模式
工廠模式,單例模式 ==
反射機(jī)制
反射的各種用法
12.了解或熟悉 C, C++, .NET
13.熟悉JDK的配置,環(huán)境變量
14.數(shù)據(jù)庫oracle必學(xué),其他最好了解一種以上(mysql,sql server,access==)
oracle:視圖,索引,存儲(chǔ)過程,觸發(fā)器,游標(biāo),包,常用函數(shù) ==
15.數(shù)據(jù)庫原理
事務(wù)的原理,鎖機(jī)制,表連接,復(fù)雜查詢語句(工作經(jīng)驗(yàn)),性能調(diào)優(yōu),鎖表以及解決方案==
,連接池
,反向Ajax
協(xié)議,request 和 response的原理,HTTP status(了解常用的),Https原理
19.熟悉Linux基本命令,使用過Linux/Unix系統(tǒng),可以編寫shell腳本,可以在Linux上部署項(xiàng)目
20.了解windows系統(tǒng)批處理腳本bat
21.了解HTML5,最好學(xué)習(xí)過
22.熟悉一種JS框架,如Prototype
原理 熟悉一種以上web容器如Tomcat,JBoss,websphere,weblogic==
24.熟悉ant或maven
25.熟悉一門腳本語言,如python ,ruby
26.了解php/ asp
27.了解ftp協(xié)議及原理
28.熟練使用Junit測試,熟悉Mockito等測試工具
29,熟悉javac,javadoc,native,native2ascii等常用命令
30.熟悉常用的排序算法,如冒泡排序,快速排序等,最好自己研究過一些的算法。
31.了解Flex(不學(xué)也沒關(guān)系)
32.了解敏捷開發(fā)模式
33.工作流workflow至少用過一種,如OSworkflow,了解原理
34.使用過VPN了解其原理
35.熟悉jstl表達(dá)式和el表達(dá)式
36.熟悉webservice,WSDL,SOAP
37.圖片處理,如圖片上傳,預(yù)覽,限制大小等
38.版本控制工具,CVS VSS SVN
39,JSON技術(shù),JSON+AJAX
40.分頁技術(shù),最好自己實(shí)現(xiàn)過不僅僅是用過要知道原理
讀寫txt,excel,JXL技術(shù)
原理,JVM內(nèi)存管理,GC,Java堆棧池
44.熟練使用下面的工具:
office辦公軟件,word,excel,ppt等
plsql,sqldevelop 數(shù)據(jù)庫開發(fā)工具
outlook大公司都用
ue編輯器
瀏覽器控制臺(tái),調(diào)試
SHH/PUTTY 遠(yuǎn)程
建模工具Rational Rose等
46. 使用log4j
47.使用過開放Api如百度,騰訊街景,新浪微博等
48.頁面靜態(tài)化技術(shù)(偽靜態(tài)頁面)
49.報(bào)表技術(shù),使用過報(bào)表制作工具,如水晶易表。
50.定時(shí)任務(wù),如Spring batch ,學(xué)會(huì)自定義batch任務(wù)(不適用第三方工具)
51.了解uuid
和 c/s架構(gòu)
53.正則表達(dá)式
54.了解jndi jms
編碼,亂碼解決
57.開源網(wǎng)絡(luò)編輯器,如ckEditor
58.二進(jìn)制原理
59.使用過,了解過開源論壇框架,如discuzz
,Closure框架
61.了解大數(shù)據(jù),云計(jì)算
62.搜索引擎搜索技術(shù)
63.軟件工程,項(xiàng)目管理
教育培訓(xùn)
計(jì)算機(jī)相關(guān)專業(yè),大專及以上學(xué)歷。相關(guān)專業(yè)證書有:Sun Certified Java Programmer(SCJP)和Sun Certified Java Developer(SCJD) 認(rèn)證。
工作經(jīng)驗(yàn)
有一定的軟件分析設(shè)計(jì)能力;熟悉Java、Servlet、JSP、EJB等開發(fā)技術(shù);熟練使用Eclipse或jbuilder等java開發(fā)工具;熟悉JAVA+STRUTS體系結(jié)構(gòu)和開發(fā)工具;熟悉至少一種數(shù)據(jù)庫的開發(fā)和設(shè)計(jì);具有良好的學(xué)習(xí)能力,具有強(qiáng)烈的工作責(zé)任心、有良好的溝通能力和團(tuán)隊(duì)合作精神。
據(jù)智聯(lián)招聘上對(duì)上海java工程師的薪資據(jù)說顯示,截止到2012年6月13日,java工程師的平均水平已達(dá)6435。根據(jù)現(xiàn)在移動(dòng)互聯(lián)網(wǎng)中安卓市場的份額,相信這一職業(yè)的工資水平會(huì)一直上升。
Java是目前世界上最流行的計(jì)算機(jī)編程語言,是一種可以編寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。這可以概括JAVA有著自己獨(dú)特的優(yōu)勢(shì):語言簡單、是一個(gè)面向?qū)ο?、分布式?yīng)用并且安全、體系結(jié)構(gòu)中立并且可移植,最重要,它是一個(gè)動(dòng)態(tài)語言。
權(quán)威統(tǒng)計(jì)機(jī)構(gòu)統(tǒng)計(jì)——在所有軟件開發(fā)類人才的需求中,對(duì) JAVA工程師的需求達(dá)到全部需求量的60%~70%。JAVA工程師的薪水相對(duì)較高,通常來說,具有3~5年開發(fā)經(jīng)驗(yàn)的工程師,擁有年薪 10萬元是很正常的一個(gè)薪酬水平。
JAVA發(fā)展方向
一是成為管理人員,例如產(chǎn)品研發(fā)經(jīng)理,技術(shù)經(jīng)理,項(xiàng)目經(jīng)理等繼續(xù);二是他的技術(shù)工作之路,成為高級(jí)軟件工程師、需求工程師等。
還是看看IDC Java工程師的薪水相對(duì)較高。 Java軟件工程師一般月薪范圍在4000-10000元,遠(yuǎn)遠(yuǎn)超過了應(yīng)屆畢業(yè)生月薪2500元的平均水平。通常來說,有一年工作經(jīng)驗(yàn)的Java高級(jí)軟件工程師的薪酬大致在年薪10—13萬左右。
JAVA就業(yè)方向:可以從事JSP網(wǎng)站開發(fā)、Java編程、Java游戲開發(fā)、Java桌面程序設(shè)計(jì),以及其他與Java語言編程相關(guān)的工作??蛇M(jìn)入電信、銀行、保險(xiǎn)專業(yè)軟件開發(fā)公司等從事軟件設(shè)計(jì)和開發(fā)工作。
斯蕾油畫
高級(jí)軟件工程師
高級(jí)軟件工程師是指是從事軟件開發(fā)相關(guān)工作的高級(jí)技術(shù)人員,屬于軟件工程師中的最高級(jí)別,該職位要求能獨(dú)立工作、全程負(fù)責(zé),對(duì)能力的要求很高。
1、獨(dú)立承擔(dān)項(xiàng)目軟件開發(fā); 2、參與項(xiàng)目的整體規(guī)劃與實(shí)施; 3、負(fù)責(zé)編寫系統(tǒng)中的關(guān)鍵模塊和關(guān)鍵算法的'程序,并進(jìn)行綜合測試、修改、代碼走查工作; 4、負(fù)責(zé)與項(xiàng)目經(jīng)理共同進(jìn)行客戶調(diào)研、業(yè)務(wù)流程分析設(shè)計(jì)及問題溝通協(xié)調(diào); 5、負(fù)責(zé)系統(tǒng)的總體技術(shù)方案與系統(tǒng)設(shè)計(jì),系統(tǒng)的質(zhì)量控制; 6、負(fù)責(zé)下屬員工即各類軟件工程師的管理和培訓(xùn)工作。
1、計(jì)算機(jī)相關(guān)專業(yè)大學(xué)本科以上學(xué)歷,具有高級(jí)軟件工程師職業(yè)資格證書; 2、具有三年以上軟件項(xiàng)目開發(fā)經(jīng)驗(yàn),對(duì)所從事的工作具有濃厚的興趣; 3、具備一定的項(xiàng)目能力(包括調(diào)試能力、文檔編寫能力、測試能力等)和綜合技術(shù)素質(zhì)(包括對(duì)軟件生命周期的理解、對(duì)設(shè)計(jì)模式的理解、必備的行業(yè)知識(shí)和經(jīng)驗(yàn)等) 4、熟練掌握VS2005/2008,C#,JAVA、AS等開發(fā)工具和語言,有WEB應(yīng)用系統(tǒng)開發(fā)經(jīng)驗(yàn),并多次擔(dān)任項(xiàng)目核心模塊的開發(fā)工作; 5、精通算法實(shí)現(xiàn)和大型數(shù)據(jù)庫系統(tǒng)管理; 6、具有良好的溝通管理能力,能帶領(lǐng)隊(duì)伍提升素質(zhì)能力; 7、具有良好的學(xué)習(xí)能力、攻關(guān)能力和創(chuàng)新能力,思維敏捷,精力充沛。
高級(jí)軟件工程師已經(jīng)屬于職位最高職稱,對(duì)技術(shù)要求很高,不可替代性也很強(qiáng),自然的,待遇各方面也非常好,但是責(zé)任與工作任務(wù)會(huì)很大。因此,高級(jí)軟件工程師一般都具有很高的專業(yè)素質(zhì)能力和抗壓能力。畢竟在目前很多國內(nèi)軟件企業(yè)中,如果你是“高級(jí)軟件工程師”,那么從需求分析、設(shè)計(jì)、開發(fā)、測試,甚至到客戶這一條龍都可能由你一個(gè)人來負(fù)責(zé)的。 ?????? 另外,學(xué)習(xí)能力對(duì)于高級(jí)軟件工程師來說是至關(guān)重要的,現(xiàn)在技術(shù)日新月異,迫使高級(jí)軟件工程師持續(xù)“充電”。 ????? ?在企業(yè)中,高級(jí)軟件工程師的上級(jí)一般是項(xiàng)目經(jīng)理、產(chǎn)品研發(fā)經(jīng)理或技術(shù)經(jīng)理,因此該職位人員可加強(qiáng)自身專業(yè)素質(zhì)和管理能力,爭取向職位上級(jí)晉升!
阿tin逐夢(mèng)游
很多人都說編程語言,只要掌握其中20%的經(jīng)典技術(shù),就可以在職場上混的游刃有余,作為一名Java程序員,要想在Java領(lǐng)域做到游刃有余,這些技術(shù)是必須要掌握的。
1. java 基礎(chǔ)
這就不用多說了吧,不用說精通,至少是常用的要熟練,不會(huì)說連jdk里面提供的類都沒認(rèn)全的。必須熟悉JDK帶的一些常用命令及其常用選項(xiàng),命令至少需要熟悉:appletviewer、HtmlConverter、jar、 java、javac、javadoc、javap、javaw、native2ascii、serialver,如果這些命令你沒有全部使用過,那么你對(duì)java實(shí)際上還很不了解。java基礎(chǔ)這塊推薦去看動(dòng)力節(jié)點(diǎn)的java教程,都是可以免費(fèi)下載的,教程包含很廣泛,工具,前沿技術(shù)都有。
2. 各種工具的使用
必須至少熟練使用一種IDE的開發(fā)工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括進(jìn)行工程管理、常用選項(xiàng)的設(shè)置、插件的安裝配置以及進(jìn)行調(diào)試
3. j2ee 框架
只要你是用java來做WEB應(yīng)用,絕對(duì)少不了使用j2ee框架,目前流行的有
1)struts ? 2)spring ?3) hibernate 4)ibatis 5)spirngMvc 等等的其他一些相似的框架,還有項(xiàng)目架構(gòu)中經(jīng)常會(huì)用到的緩存框架例如memcached ,ehcache,oscache等Java緩存框架,需要掌握基本使用,部署,性能調(diào)優(yōu),配置
4. 數(shù)據(jù)庫基礎(chǔ)
數(shù)據(jù)庫一直是程序員需要重點(diǎn)掌握的一部分,當(dāng)下主流的還是關(guān)系型數(shù)據(jù)庫,產(chǎn)品有oracle mysql sqlserver db2,當(dāng)然nosql型數(shù)據(jù)庫也是未來方向,很多公司也已經(jīng)在使用,如redis mongodb membase 等等
你需要掌握基本使用,和根據(jù)業(yè)務(wù)邏輯設(shè)計(jì)表,索引,視圖,存儲(chǔ)過程,函數(shù)等
5.設(shè)計(jì)模式
你的項(xiàng)目中用到了哪些設(shè)計(jì)模式,如何使用·知道常用設(shè)計(jì)模式的優(yōu)缺點(diǎn)·能畫出常用設(shè)計(jì)模式的UML圖這是一個(gè)思想的東西,也許寫一輩子程序那23個(gè)設(shè)計(jì)模式也不一定全用的上,但是知道并且能夠在適當(dāng)?shù)臅r(shí)候用他來解決問題就夠了。
6. 應(yīng)用服務(wù)器
凡是web應(yīng)用首先都要部署到應(yīng)用服務(wù)器上,常用的產(chǎn)品有tomcat,jboss, apache,resin 等等,還有用來提升性能的反向代理服務(wù)器如nginx等,你需要掌握如何部署項(xiàng)目,基本調(diào)試,調(diào)優(yōu)。
7. Linux系統(tǒng)
我們平常的編碼通常在windows環(huán)境下,可是生產(chǎn)環(huán)境卻通常是在Linux下,因?yàn)槲④浀臇|西,你懂得。所以我們需要掌握的是shell腳本,vi ,各種軟件的安裝,部署,其中shell腳本是最重要的。
8. 數(shù)據(jù)結(jié)構(gòu)算法
編程=數(shù)據(jù)結(jié)構(gòu) + 算法 。雖然感覺平常的工作中用到的不多,但還是覺得這是一個(gè)內(nèi)功的東西,不會(huì)這兩樣也許你也可以完成很多開發(fā)工作,但是如果你精通這兩樣,你的思想境界和思考問題的高度就不是一般人能比的了,如果想要在程序員這條路上繼續(xù)走下去,不管以后是成為技術(shù)專家還是技術(shù)性管理人才,都是必須要爛熟于心的。
9. 多線程
在面試中線程是必問的問題,你怎么實(shí)現(xiàn)多線程,Thread和Runnable的區(qū)別和聯(lián)系、多次start一個(gè)線程會(huì)怎么樣、線程有哪些狀態(tài)。另外,線程池也是比較常問的一塊,常用的線程池有幾種?這幾種線程池之間有什么區(qū)別和聯(lián)系?線程池的實(shí)現(xiàn)原理是怎么樣的?多線程同步、鎖這塊也是重點(diǎn)。
要想成為一個(gè)好的程序員就不要怕學(xué)習(xí),有學(xué)歷能力需要新技術(shù)才能跟得上技術(shù)發(fā)展的速度,會(huì)學(xué)習(xí)的人永遠(yuǎn)不會(huì)被淘汰。
優(yōu)質(zhì)工程師考試問答知識(shí)庫