自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

每位新手程序員都應(yīng)當(dāng)了解的七條箴言

譯文
開發(fā) 后端 前端
資深軟件開發(fā)人員分享他們在多年從業(yè)當(dāng)中學(xué)習(xí)到的,關(guān)于如何成功推進(jìn)專業(yè)編程工作的種種真知灼見。

資深軟件開發(fā)人員分享他們在多年從業(yè)當(dāng)中學(xué)習(xí)到的,關(guān)于如何成功推進(jìn)專業(yè)編程工作的種種真知灼見。

[[145640]]

如果大家屬于剛剛涉足專業(yè)軟件開發(fā)世界的新人,各位可能會以為自己完全能夠憑借著多年來在計算機(jī)科學(xué)及編程領(lǐng)域獲得的教育及/或培訓(xùn)順利玩轉(zhuǎn)一切。不過在這一行業(yè)浸淫多年的老鳥開發(fā)者則希望提醒大家,單憑科班灌輸?shù)闹R還遠(yuǎn)遠(yuǎn)不夠,我們還需要從實踐當(dāng)中了解到更多***指導(dǎo)性的寶貴財富。

為了掌握這些真知灼見,我與多位經(jīng)驗豐富的資深開發(fā)人員進(jìn)行了溝通——他們至少在軟件技術(shù)領(lǐng)域擁有十年乃至更長的從業(yè)經(jīng)歷(有幾位甚至已經(jīng)從業(yè)數(shù)十年)。提到他們希望自己在剛剛畢業(yè)并初次涉足編程行業(yè)時能夠了解到哪些箴言,他們都有著自己的答案。無論大家是剛步出校門的應(yīng)屆生還是已經(jīng)在編程領(lǐng)域有些心得的從業(yè)者,下面這些來自老鳥們的建議相信都能在未來的發(fā)展道路上幫助各位找到正確方向。

了解與底層系統(tǒng)相關(guān)的一切

[[145641]]

當(dāng)然,軟件開發(fā)工作當(dāng)中的重要組成部分之一正是編程語言本身。不過正如各位前輩所分享的心得所言,開發(fā)人員同樣需要了解堆棧之下所發(fā)生的一切。

“很多語言會以抽象形式將系統(tǒng)級別的運作機(jī)制剝離出去,而這種抽象性確實非常重要,因為它允許開發(fā)人員在大部分時間內(nèi)保持更高的生產(chǎn)效率。”Acquia公司技術(shù)支持工程師Pete Bull指出。“不過當(dāng)大家遇到障礙或者說非常嚴(yán)重的錯誤時,則需要對引擎蓋之下運作的一切擁有相當(dāng)程度的理解。我們需要有能力調(diào)試某項進(jìn)程,并查看系統(tǒng)調(diào)用以真正掌握特定代碼片段與系統(tǒng)其余部分之間的交互活動,”他在采訪郵件當(dāng)中寫道。

同樣的,Platform.sh公司客戶滿意度副總裁Robert Douglass告訴我們,“當(dāng)我剛開始上手編程工作時,計算機(jī)本身還蘊(yùn)含著大量我無法理解甚至聞所未聞的奧秘。文件系統(tǒng)、網(wǎng)絡(luò)以及數(shù)據(jù)如何駐留在內(nèi)存當(dāng)中,這就是三個典型的實例。這部分知識的缺失,意味著我根本無法真正從編程角度出發(fā)了解開發(fā)項目中的某些目標(biāo)。”

熟悉命令行工具

每位新手程序員都應(yīng)當(dāng)了解的七條箴言

作為一位開發(fā)人員,大家很可能會把大量時間用在使用IDE或者代碼編輯器身上。不過需要提醒大家,如果了解如何在命令行上實現(xiàn)同樣的操作,那么各位的日常生活絕對會變得更加輕松。

“有時候,大家會發(fā)現(xiàn)自己只能使用一臺配置一切就緒,但可用工具非常有限的設(shè)備,”一位已經(jīng)擁有二十年從業(yè)經(jīng)歷的資深程序員告訴我們。“要像熟悉呼吸那樣熟練掌握shell,包括find、comm、diff、vi/vm、sed以及awk等等。有時候利用正確的合作行編寫小型腳本來查找必須馬上進(jìn)行修改的文件將非常重要——因為生產(chǎn)體系很可能已經(jīng)受到了影響、而造成URL指向未知文件的那位技術(shù)人員還在斐濟(jì)度假呢。”

作為一位開發(fā)者,Bull最初使用的是微軟工具,但隨后逐步轉(zhuǎn)移到了Linux陣營。他表示“我已經(jīng)學(xué)習(xí)到大量與命令行相關(guān)的專業(yè)知識,并意識到Linux系統(tǒng)之上提供的這些功能的重要地位?,F(xiàn)在我能夠輕松地重新調(diào)用幾年前自己編寫完成的代碼,或者拿出幾天或者幾周時間對grep + awk作出進(jìn)一步改進(jìn)。”

調(diào)試器是我們的好朋友

[[145642]]

要想顯著節(jié)約寶貴時間,非常重要的一點就是利用相關(guān)工具追蹤各類bug。Novartis公司生物信息學(xué)開發(fā)人員Dave Varon對于調(diào)試器的重要意義作出了強(qiáng)調(diào),并解釋了其如何幫助我們獲得遠(yuǎn)超過初始學(xué)習(xí)成本的收益。“學(xué)習(xí)使用調(diào)試器,快快快!”他在采訪當(dāng)中指出。“拿出一、兩天時間好好鉆研配置一番。在此之后,如果發(fā)現(xiàn)結(jié)果與預(yù)期不符,那么馬上調(diào)試:設(shè)置斷點、貫穿代碼,特別是第三方代碼。這不僅能夠幫助我們大大降低問題出現(xiàn)機(jī)率,同時也能夠讓大家在其間學(xué)習(xí)到很多原本只能通過閱讀他人代碼掌握的知識。”

學(xué)習(xí)編寫測試

[[145643]]

一部分開發(fā)人員認(rèn)為單元測試——具體來講,就是編寫測試以驗證小型代碼單元是否起到了其應(yīng)有的作用——非常關(guān)鍵。來自Strategic Power Systems公司的數(shù)據(jù)庫開發(fā)人員Richard Handloff就是其中之一。“我認(rèn)為我能給新人們提供的***建議,就是學(xué)習(xí)如何編寫出優(yōu)秀的測試機(jī)制,并在項目開發(fā)初期就制定出一套可行的測試方案,”他在采訪郵件當(dāng)中寫道。

制定改變規(guī)劃,了解新型系統(tǒng)

[[145644]]

時至今日,每位從業(yè)者都清楚地意識到技術(shù)正在快速發(fā)展轉(zhuǎn)變。這種現(xiàn)象不僅影響著我們心愛的客戶的實際體驗,同時也改變著底層系統(tǒng)、語言乃至程序員們?nèi)粘9ぷ魉褂玫母黝惞ぞ摺?/p>

Milestone Made公司創(chuàng)始人兼移動開發(fā)者Adam Wulf建議稱,新晉程序員們應(yīng)當(dāng)準(zhǔn)備好——而且搶先一步——應(yīng)對技術(shù)變革。“就目前來講,我認(rèn)為大家應(yīng)該以四年為周期就學(xué)習(xí)全新技術(shù)堆棧作好規(guī)劃,”他表示。“良好的基礎(chǔ)知識當(dāng)然能夠始終發(fā)揮作用,不過我們每天所使用的工具乃至技術(shù)方案每過四年就會發(fā)生顛覆性的變更。”

“項目不應(yīng)再利用單一框架以單一語言編寫而成,”一位不愿透露姓名的開發(fā)者建議道。“大家千萬不要在某個項目當(dāng)中只使用一種開發(fā)方式,因此請盡快適應(yīng)在不同項目之間進(jìn)行語言/技術(shù)轉(zhuǎn)換的實際需求,”他在采訪郵件當(dāng)中寫道。

與他人保持良好關(guān)系

[[145645]]

盡管常規(guī)概念下的程序員都會戴著耳機(jī)在自己的小世界里埋頭工作,但不可否認(rèn)的是,我們?nèi)匀恍枰瞬⒓鐓f(xié)作。Sinclair Digital Ventures公司CTO Ben Miller著重強(qiáng)調(diào)了作為團(tuán)隊成員角色工作對于實現(xiàn)職業(yè)生涯成功的重要意義。“大型項目往往是由眾多活動組件構(gòu)建而成,如果我們無法順利完成協(xié)作,那么組件的合并將成為一項不可能實現(xiàn)的任務(wù)。”他在采訪郵件當(dāng)中指出。“在嘗試對某種算法進(jìn)行優(yōu)化之前,請先與團(tuán)隊進(jìn)行溝通并確保任何能夠幫助團(tuán)隊成員減輕工作壓力的任務(wù)分配規(guī)劃都已經(jīng)部署到位。編程是一項團(tuán)隊競技項目,千萬別忽視了這一點!”

Varon還著重強(qiáng)調(diào)了人際交往能力的重要性,表示“如果大家無法自行完成API或者調(diào)試的審查工作,請借力于他人。我們自認(rèn)為編寫出了一段堪稱杰作的代碼,并不意味著它就一定出色或者沒有進(jìn)一步提升的空間。跟在大學(xué)里一樣,同處一室的其他同伴也面臨著同樣的問題,而且每個人都有可能找到了解決問題的***答案。與同事們建立起融洽的合作關(guān)系,有時候甚至單純向?qū)Ψ矫枋鰡栴}就足以幫助我們找到解決靈感。”

另一位不愿透露姓名的受方者也表達(dá)了類似的想法,即成為團(tuán)隊中一員對于順利完成任務(wù)所起到的積極作用。“即使當(dāng)前的工作比較繁重,我們也應(yīng)當(dāng)盡可能幫助其他成員解決各類難題,這將讓大家的職業(yè)生涯走得更加順暢,”他表示。不過在這種情況下,他也提醒大家“但請注意,要保證有理有節(jié)的幫助強(qiáng)度,否則我們很可能身陷其中而耽誤了自己的份內(nèi)職責(zé)。”

勇敢邁出自己的道路,以自由職業(yè)身份編寫代碼

[[145646]]

Miller在這里提出了一項有趣的建議,而且乍看起來似乎難以理解。他在采訪中告訴我,“在工作之外編寫代碼更易于實現(xiàn)職業(yè)生涯提升。找到最簡單的問題解決辦法并對代碼進(jìn)行免費的彈性設(shè)置與維護(hù),那么客戶自然會提供更多工作供我們完成。他們甚至?xí)埼覀円越處煹纳矸葜笇?dǎo)其內(nèi)部開發(fā)人員,”他解釋道。“簡而言之,過分擔(dān)心當(dāng)下這份工作是否穩(wěn)定反而會阻礙職業(yè)生涯的健康發(fā)展。”

原文標(biāo)題:7 things every new programmer should know

責(zé)任編輯:王雪燕 來源: 51CTO
相關(guān)推薦

2015-08-27 10:39:59

新手程序員必知

2015-03-20 11:50:09

程序員程序員警句

2025-04-10 08:00:00

CIO風(fēng)險管理IT戰(zhàn)略

2023-12-25 09:35:28

C#泛型.Net編程語言

2024-04-10 12:36:41

硬件代碼

2012-11-30 09:26:39

2012-11-01 13:46:54

程序員

2022-11-02 10:31:01

IT創(chuàng)IT領(lǐng)導(dǎo)者

2013-03-20 17:58:41

虛擬內(nèi)存程序員

2011-10-31 09:14:35

程序員

2020-05-29 09:48:54

Python開發(fā)Kafka

2010-09-08 15:07:23

2013-05-28 14:18:04

2018-05-23 20:56:49

開發(fā)原因原則

2014-02-19 10:44:55

BYOD建議

2009-08-03 16:22:58

C#編程技巧

2021-10-29 05:52:01

零信任網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2015-09-11 09:35:35

CPU

2020-09-03 12:54:37

Python程序員macOS

2009-06-09 22:14:17

JavaScript準(zhǔn)則
點贊
收藏

51CTO技術(shù)棧公眾號