關(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)行分布式工作,大大提升工作效率。
二、至少一門編程語音,JAVA、PHP、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ùn)用,基于J2EE各個(gè)組件的開發(fā)等等。
三、運(yùn)用開發(fā)框架和第三方庫,流行的開發(fā)語言,一般都伴有出色的開發(fā)框架,比如JAVA的Spring、MyBatis、Hibernate,Python的Django,PHP的thinkphp、yin,nodeJs的expres等。熟練使用這些開發(fā)框架或第三方庫能夠避免重復(fù)發(fā)明輪子,是對(duì)產(chǎn)品或項(xiàng)目在質(zhì)量與安全方面的最有效的保障。
四、前端技術(shù),一個(gè)產(chǎn)品除了實(shí)現(xiàn)所需的功能之外,是否好用(用戶體驗(yàn))也正在成為評(píng)判一個(gè)產(chǎn)品是否成功的重要標(biāo)準(zhǔn)。至少需要掌握HTML5、CSS3、JavaScript等基本前端技術(shù),同時(shí)進(jìn)一步學(xué)習(xí)JQuery、LESS、SASS、AngularJS或REACT等前端框架或第三方庫。
五、數(shù)據(jù)庫與緩存,作為全棧工程師,至少需要掌握一到兩個(gè)數(shù)據(jù)庫,并知道怎樣與數(shù)據(jù)庫進(jìn)行交互。目前流行的數(shù)據(jù)庫主要有MySQL、MongoDB、Redis、Oracle、SQLServer等。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ì)能力,一些軟件工程師的產(chǎn)品設(shè)計(jì)太差,開發(fā)者往往沒有意識(shí)到問題的存在,比如色彩不一致,排版凌亂,不恰當(dāng)?shù)膱D標(biāo)等。建議要掌握的基本設(shè)計(jì)能力,并不需要像專業(yè)設(shè)計(jì)師那樣能夠P出神圖、制件奇妙的視頻效果等,但需要掌握最基本的UI設(shè)計(jì)原則,如色彩的搭配,基本的排版,并具備良好的審美能力,和一些基本UI設(shè)計(jì)能力。
在掌握這些核心技能之后,可以根據(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í)力)
一、溝通,你總需要與同事、干系人或是客戶進(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í)間的時(shí)間給出正確的解決方案,在這背后需要經(jīng)過大量實(shí)踐積累而來的經(jīng)驗(yàn)。
三、時(shí)間管理,作為全棧工程師,可能會(huì)被安排同時(shí)在不同的項(xiàng)目中承擔(dān)不同的角色。需要合理地分配時(shí)間,保證所有的工作都能按時(shí)交付。同樣在業(yè)余時(shí)間,還需要花時(shí)間閱讀和學(xué)習(xí),同時(shí)可能還會(huì)有自己的Side Project。因此合理進(jìn)行時(shí)間分配,并對(duì)一些關(guān)鍵任務(wù),進(jìn)行計(jì)劃是很重要的。這或許會(huì)帶來一些壓力,但這反而會(huì)激發(fā)自身的創(chuàng)造力,并能讓一切有條不紊地進(jìn)行。
四、好奇心,對(duì)從事的任何工作都抱有好奇心,并愿意不斷學(xué)習(xí)和改善是那些優(yōu)秀工程師的共同特性。時(shí)常會(huì)有人發(fā)問,做計(jì)算機(jī)這一行一直會(huì)有新的東西產(chǎn)生,要去不斷學(xué)習(xí),是不是很累?對(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ì)個(gè)人未來的職業(yè)生涯帶來極大的益處。因?yàn)?,?dāng)機(jī)會(huì)到來進(jìn),請(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)秀的全棧工程師。
優(yōu)秀的全棧工程師需要走出去
一、參加技術(shù)大會(huì),InfoQ、CSDN、GITC、優(yōu)設(shè)、TED等網(wǎng)站都會(huì)定期舉辦各類技術(shù)大會(huì)。在這些大會(huì)上,你不僅能夠能到技術(shù)大咖們帶來的各自領(lǐng)域最佳技術(shù)實(shí)踐,而且能認(rèn)識(shí)很多行業(yè)內(nèi)的朋友。這對(duì)開拓思路,擴(kuò)大技術(shù)社交圈都很有幫助。因?yàn)椋绻?a target="_blank">公司沒有安排你去參加這些技術(shù)大會(huì)的話,那就自己買票參加,作為對(duì)自己的一種投資吧。
二、作公開演講,全棧工程師并不需要是一個(gè)公開演講者,但作為團(tuán)隊(duì)的核心成員,他一定需要在團(tuán)隊(duì)內(nèi)部做技術(shù)、管理等方面的進(jìn)行演講。如果你是一個(gè)樂于分享的技術(shù)達(dá)人,那么可以嘗試錄制個(gè)個(gè)課程(視頻或音頻),并在慕課、網(wǎng)易課堂、優(yōu)酷或像荔枝、喜馬拉雅等各種媒體分享自己的技能和知識(shí),不要因?yàn)樽约翰⒉皇菍<揖筒辉竾L試。用心制作的內(nèi)容,不但能夠穩(wěn)固相關(guān)的技術(shù),而且會(huì)獲得大家的認(rèn)可,并收獲一大批粉絲。
三、個(gè)人博客,每天進(jìn)步一點(diǎn)點(diǎn),一年以后便會(huì)獲得質(zhì)的飛躍。優(yōu)秀的全棧工程師懂得如何進(jìn)行知識(shí)的積累,而技術(shù)博客就是一個(gè)很好的方式,將自己平時(shí)的實(shí)踐、思考記錄下來,配以tag標(biāo)簽方便日后的回顧。最有意思的是,當(dāng)在不斷記錄和更新博客的時(shí)間,還能通過博客認(rèn)識(shí)世界各地的程序員。
四、參加線下活動(dòng),與以前程序員總是宅在家里不同,現(xiàn)在的年經(jīng)程序員們更愿意分享和交流。很多網(wǎng)站也會(huì)組織不同技術(shù)主題的線下活動(dòng),在這些活動(dòng)中可以聽到一些技術(shù)大牛人的分享,還可以拓展的人脈。
全棧工程師決不是一夜練成的,需要打好技術(shù)基礎(chǔ),強(qiáng)化核心技能,并持續(xù)學(xué)習(xí)。終有一天將體會(huì)到自由運(yùn)用技術(shù),開發(fā)出優(yōu)秀產(chǎn)品所帶來的樂趣。
-
工程師
+關(guān)注
關(guān)注
59文章
1561瀏覽量
68317 -
代碼
+關(guān)注
關(guān)注
30文章
4671瀏覽量
67772 -
GitHub
+關(guān)注
關(guān)注
3文章
461瀏覽量
16237
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論