(1)關(guān)鍵開發(fā)技能(硬實(shí)力)
·Git/GitHub——你必須掌握如何使用Git來管理和分享你的代碼。把Git作為關(guān)鍵技能的第一條,是因?yàn)樗粌H僅是一個(gè)代碼管理工具,更是一種推薦的工作方式。它使你能在任何地方進(jìn)行開發(fā),高效地管理任何大小的項(xiàng)目,通過Git你還能與其他團(tuán)隊(duì)成員進(jìn)行分布式協(xié)作,大大提升工作效率。通過GitHub,還能將你與世界所有的開發(fā)者聯(lián)系在一起。
·至少一門編程語言——你需要精通至少一門編程語言,如Java、PHP、Swift、C#、Python、Ruby、Perl等,因?yàn)槟愕拇蠖鄶?shù)核心業(yè)務(wù)處理都需要用這門語言來寫。你既要掌握這門語言的語法,又需要非常熟悉如何基于這門語言進(jìn)行項(xiàng)目的架構(gòu)、設(shè)計(jì)、實(shí)現(xiàn)及測(cè)試。如果你選擇的是Java,那么你就需要掌握面向?qū)ο蟮脑O(shè)計(jì)和開發(fā)、設(shè)計(jì)模式的應(yīng)用、基于J2EE各個(gè)組件的開發(fā),等等。
·運(yùn)用開發(fā)框架和第三方庫——流行的開發(fā)語言,一般都伴有出色的開發(fā)框架,比如,Java的Spring、MyBatis、Hibernate,Python的Django,PHP的thinkphp、yin,nodeJs的express,等等。這些開發(fā)框架往往都遵循軟件開發(fā)領(lǐng)域的一些最佳實(shí)踐,并由非常優(yōu)秀的開發(fā)人員創(chuàng)建。熟練使用這些開發(fā)框架或第三方庫能夠避免重復(fù)發(fā)明輪子,從而使你的工作事半功倍。更重要的是這些優(yōu)秀框架或第三方庫一般都得到持續(xù)的維護(hù),是對(duì)你的產(chǎn)品或項(xiàng)目在質(zhì)量與安全方面最有效的保障。
·前端技術(shù)——之所以將前端技術(shù)獨(dú)立出來,作為一項(xiàng)關(guān)鍵技術(shù),是因?yàn)樗诮裉斓捻?xiàng)目和產(chǎn)品的研發(fā)過程中正變得越來越重要。一個(gè)產(chǎn)品除了實(shí)現(xiàn)所需的功能之外,是否好用(用戶體驗(yàn))也正在成為評(píng)判一個(gè)產(chǎn)品是否成功的重要標(biāo)準(zhǔn)。而這都依賴于前端技術(shù)的實(shí)現(xiàn),你至少需要掌握HTML5、CSS3、JavaScript等基本前端技術(shù),同時(shí)進(jìn)一步學(xué)習(xí)JQuery、LESS、SASS、AngularJS或REACT等前端框架或第三方庫。
·數(shù)據(jù)庫與緩存——任何產(chǎn)品或項(xiàng)目都需要一個(gè)數(shù)據(jù)庫來存儲(chǔ)數(shù)據(jù)。作為全棧工程師,你也需要至少掌握一到兩種數(shù)據(jù)庫,并知道怎樣與數(shù)據(jù)庫進(jìn)行交互。目前流行的數(shù)據(jù)庫主要包括MySQL、MongoDB、Redis、Oracle、SQL Server等。MongoDB作為文檔型數(shù)據(jù)庫,在互聯(lián)網(wǎng)產(chǎn)品中正被越來越多地使用,對(duì)于規(guī)模稍大一些的項(xiàng)目,我仍推薦使用MySQL或商用的Oracle作為后端數(shù)據(jù)庫。而Redis這樣的內(nèi)存數(shù)據(jù)庫則可以用于緩存,以提升系統(tǒng)的性能。
·基本設(shè)計(jì)能力——大部分關(guān)于全棧工程師的文章或討論中,都不會(huì)將設(shè)計(jì)能力作為全棧工程師的關(guān)鍵技能,但我卻認(rèn)為這項(xiàng)技能非常重要。我曾被邀請(qǐng)?jiān)u估一些軟件工程師自己開發(fā)的產(chǎn)品,這些產(chǎn)品都有不錯(cuò)的創(chuàng)意,功能實(shí)現(xiàn)也很到位,但其中一些一看就不是一個(gè)好的產(chǎn)品,用戶根本沒有使用欲望,原因是這些產(chǎn)品的設(shè)計(jì)太差了,而那些開發(fā)者往往完全沒有意識(shí)到問題的存在,比如,色彩不一致、排版凌亂、圖標(biāo)不恰當(dāng),等等。我所建議的基本設(shè)計(jì)能力,并不要求你像專業(yè)設(shè)計(jì)師那樣能夠P出神圖、制作奇妙的視覺效果等,但你需要掌握那些最基本的UI設(shè)計(jì)原則,如色彩的搭配,基本的排版,并具備良好的審美能力和一些基本UI設(shè)計(jì)能力,這樣你做的產(chǎn)品就不會(huì)太差了。
在掌握了這些核心技能之后,你可以根據(jù)自己的興趣與發(fā)展方向,學(xué)習(xí)其他方面的技術(shù)。比如,如果你對(duì)數(shù)據(jù)處理感興趣,那么你可以學(xué)習(xí)大數(shù)據(jù)方面的技術(shù);如果你對(duì)移動(dòng)互聯(lián)網(wǎng)更感興趣,那么你可以學(xué)習(xí)Swift,開發(fā)iOS應(yīng)用。知識(shí)總是相通的,在有了良好的技術(shù)基礎(chǔ)后,學(xué)習(xí)其他知識(shí)將會(huì)變得非常容易。
(2)附加技能(軟實(shí)力)
稍大一些的項(xiàng)目,你總是需要與同事、干系人或是客戶進(jìn)行溝通。而成功的溝通往往是獲得有效需求與建立團(tuán)隊(duì)樹立信心的第一步。在項(xiàng)目進(jìn)行的過程中,你更需要通過有效的溝通去確定方案,消除誤解,與項(xiàng)目成員協(xié)同前進(jìn)。良好的溝通能力將使你在團(tuán)隊(duì)中更具影響力,受到更多尊重和關(guān)注。
·問題解決能力——全棧工程師首先是一名工程師,他必須掌握用工程化的方法來解決遇到的各種問題。我在職業(yè)生涯中的幾乎所有亮點(diǎn),都與解決問題相關(guān),大到提供整個(gè)項(xiàng)目的架構(gòu)方案,小到以最快的速度解決生產(chǎn)問題,等等。其實(shí),有很多提高問題解決能力的方法,但沒有一種比實(shí)踐更有效。我所見到的優(yōu)秀工程師,往往能夠憑借直覺以最短的時(shí)間給出正確的解決方案,但你沒有看到的,是在這背后經(jīng)過大量實(shí)踐累積而來的經(jīng)驗(yàn)。
·時(shí)間管理——作為全棧工程師,你可角色。你需要合理地分配時(shí)間,保證所有的工作能夠按時(shí)交付。同樣在你的業(yè)余時(shí)間,你還需要花時(shí)間閱讀和學(xué)習(xí),同時(shí)你還可能有自己的Side Project。因此,合理地進(jìn)行時(shí)間分配,并對(duì)一些關(guān)鍵任務(wù)進(jìn)行計(jì)劃是很重要的。你或許會(huì)感到一些壓力,但這反而會(huì)激發(fā)你的創(chuàng)造力,并能讓一切都有條不紊地進(jìn)行。
·好奇心——對(duì)任何工作都抱有好奇心,并愿意不斷學(xué)習(xí)和改善是那些優(yōu)秀工程師的共同特性。軟件開發(fā)領(lǐng)域匯集了世界上最聰明的人,各種類型的技術(shù)、產(chǎn)品、框架更是日新月異,層出不窮。優(yōu)秀的全棧工程師需要不斷地學(xué)習(xí)來抓住這些變化,跟上計(jì)算機(jī)領(lǐng)域發(fā)展的腳步。時(shí)常有人會(huì)問我,做計(jì)算機(jī)這一行一直會(huì)有新的東西產(chǎn)生,要去不斷地學(xué)習(xí),是不是會(huì)很累。我要說的是,對(duì)于將持續(xù)學(xué)習(xí)作為一種生活習(xí)慣的人來說,學(xué)習(xí)新東西并不會(huì)成為一種負(fù)擔(dān),反而是一種樂趣。
·領(lǐng)導(dǎo)力——優(yōu)秀的全棧工程師往往會(huì)被賦予技術(shù)Leader甚至項(xiàng)目管理者的角色。成為管理者并不是讓你去支配其他人,或讓其他人替你做事。管理者需要理解你的團(tuán)隊(duì)成員的長(zhǎng)處與不足,并知道如何以服務(wù)的態(tài)度使團(tuán)隊(duì)獲得最大化的產(chǎn)出。我見過一些非常優(yōu)秀的工程師,當(dāng)他們被安排去管理團(tuán)隊(duì)時(shí),他們是排斥的,他們往往更愿意獨(dú)自工作。但我想說,成為管理者將會(huì)使你更加睿智、可靠和值得他人信賴,也會(huì)對(duì)你未來的職業(yè)生涯帶來極大的益處。因此,當(dāng)機(jī)會(huì)到來時(shí),請(qǐng)將它視為挑戰(zhàn),不要排斥它。
有經(jīng)驗(yàn)的技術(shù)領(lǐng)導(dǎo)者在招聘時(shí),往往會(huì)同時(shí)考察應(yīng)聘者的技術(shù)能力與上述附加技能,而對(duì)于初級(jí)程序員的招聘來說,那些附加技能往往更被優(yōu)秀的技術(shù)公司所看重。開發(fā)技能是你的硬實(shí)力,而附加技能則可以看作是你的軟實(shí)力,只有同時(shí)具備這兩方面技能,才能成為一名優(yōu)秀的全棧工程師。
責(zé)任編輯:wv
-
工程師
+關(guān)注
關(guān)注
59文章
1571瀏覽量
68612
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論