色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

你與明星軟件開發工程師只差這10個特質

工程師人生 ? 來源:網絡整理 ? 作者:工程師吳畏 ? 2018-08-13 15:31 ? 次閱讀

如今,每家公司都似乎成了科技公司。從軟件創業公司到投機性投資公司、制藥巨頭和媒體巨頭,它們都越來越多地加入到軟件業務行列。

代碼質量不僅成為了一個必需品,更成為了一個競爭優勢。因為眾多公司圍繞軟件而競爭,開發軟件的人——軟件工程師正顯得越發重要。但是,你該如何發現那種百里挑一的程序員呢?在本文中,我們簡明扼要地列出了明星開發人員的10種特質。

1. 熱愛編程

2. 完成事情

3. 持續重構代碼

4. 使用設計模式

5. 編寫測試

6. 善用現有代碼

7. 專注可用性

8. 編寫可維護的代碼

9. 能用任何語言編程

10. 知曉基本的計算機科學

1. 熱愛編程

編程是一種為了滿足興趣而心甘情愿去做的勞動(Programming is a labor of love)。和其他任何職業一樣,唯有真正的熱情,才能完成真正的偉大事情。這里有個誤解,認為編寫代碼是機械化并純科學性的。事實上,最優秀的軟件工程師是工匠,他們能把能量、獨創性和創造力融入到每一行代碼中。偉大的工程師知道何時該把代碼雕琢至完美,知道何時把大型系統像拼圖一樣組裝到一塊。熱愛編程的工程師從構建軟件中獲得滿足,就好比一位作曲家在完成一部交響樂后而欣喜若狂。正是興奮感和成就感,才造就了喜愛編程的明星工程師。

2. 完成事情

有很多技術人員只談論軟件而不編寫代碼(只說不做型)。而偉大軟件工程師會真正去編碼,這也是他們最為重要的品質之一。他們是實際做事的人。聰明人都知道,解決問題的最佳途徑是直面問題,而不是花上數周來設計復雜又不必要的架構和函數庫。優秀工程師應當會問:解決手頭問題的最簡單方法是什么?最近的軟件開發方法——敏捷實踐,正是專注那個。它的思想是,把復雜的項目拆分為短小的迭代,每個迭代只關注一小部分的增量功能。因為每個迭代對應的編碼只需要數周,所以功能易于管理并簡單。

3. 持續重構代碼

編碼很像雕刻。要像藝術家一樣不斷完善自己的作品,軟件工程師也要通過可能的最佳方式來持續完善自己的代碼,以達到目標。重新塑造代碼的原則稱為“重構”,Martin Fowler在他的創意書中有相應描述。重構背后的原始思想是:改善代碼而不改變其功能,移動調整部分代碼以確保系統不腐,還有確保系統完成基于當前需求該完成的事。持續重構可以讓開發人員解決另一個著名的問題——“黑盒遺留代碼”(這個問題基本無人想觸及)。

幾十年的軟件開發文化要求我們,不應該去改變正常工作的東西。然而,隨著時間推移,問題是我們成為了老舊代碼的奴隸,老舊代碼變得不穩定和不兼容。而重構正好可以改變這一狀況,因為我們是代碼的主人,不是它的奴隸。重構在工程師和代碼之間建立起持續的“對話”,并帶來所有權、確定性、自信心和系統的穩定性。

千萬不要成為老舊代碼的奴隸。如果代碼是他人所寫,或許你可以輕易推脫責任。但大多數時候,那些代碼是自己所寫,要拿得起放得下,舊代碼該埋時,就把它埋了!

4. 使用設計模式

自從所謂的“四人幫”(Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides)發表他們的著作——《設計模式》后,全世界的軟件工程師一直都在討論模式。在我們所處世界,不管是自然界還是人類行為,模式無處不在。軟件工程自然也不例外。模式就是不斷重現的跨語言跨系統的場景和機制。一位優秀的工程師通常能識別并利用模式,而不是受制于模式。工程師不應(強制)讓系統去適應某種模式,而需發現在系統中使用模式的時機(恰當使用模式)。在使用模式來確保正確性時,應借鑒利用前人的智慧結晶,使用以前能正當解決特定工程問題的方法。但請切記:模式不是萬靈藥;不要為了使用設計模式而使用設計模式。

5. 編寫測試

曾有段時間,軟件工程師們認為測試不值得他們去做。然而,如果你不做測試,你怎么能確保代碼就能正常工作呢?敏捷實踐中的“單元測試”已獲得普遍認可,因為它注重編寫測試來反映代碼是否有效。隨著系統增大,測試也隨之增大。有經驗的工程師知道并了解測試的價值所在,因為測試的目的就是創建一個能正常運作的系統。優秀的工程師通常會確保出現過一次的Bug不會再出現第二次。但優秀的工程師也知道,不應該浪費時間寫那些瑣碎或多余的測試,而需要專注測試各個組件中的核心部分。

6. 善用現有代碼

“重新發明輪子”一直是軟件行業中的巨大問題之一。從發明新語言到從寫函數庫,忽視并重寫那些已經存在并已能工作的奇怪驅動力,已經造成大量軟件開發的失敗案例。一位明星工程師會專注三種基本類型的重用:第一,內部基礎架構的重用,相應代碼是他自己或同事編寫的;第二,使用第三方的函數庫,比如JDK。最后,研究使用某些大型網絡服務商提供的相應服務,比如Amazon??傊?,正確善用現有的代碼,使得軟件工程師能真正專注于最為重要的事情上——應用程序本身。

7. 專注可用性

優秀的工程師通常都專注于用戶。無論用戶是企業還是個人,無論是為消費型的軟件公司還是投資銀行,需要關注的都是可用性。用戶如何和系統交互?系統是否提供一種簡單、直接和平穩的操作體驗?有種說法,因為軟件工程師是技術人員,他/她和“用戶如何與系統交互”沒有關聯,這種說法嚴重錯誤。優秀工程師努力工作是為了什么?不正是讓系統簡單并易于使用。他們無時無刻都會想到用戶,不會嘗試去發明那些令人費解,只有極客才能理解并欣賞的東西。

有些時候,一些軟件工程師過于投入,反而忘記所編寫的程序/軟件,是供他人使用,不是做給自己看的“藝術品”。所以,在軟件開發過程中,一直要把“用戶”放在心中。

8. 編寫可維護的代碼

軟件開發界的另外一個小秘密是:編寫優秀代碼和糟糕代碼所花費的時間是一樣多。一位訓練有素的工程師,他/她會從第一行代碼開始就考慮可維護性和代碼的演化。沒有任何理由編寫“丑陋”的代碼、長達數頁的函數,或是稀奇古怪的變量名。優秀的工程師編寫代碼會遵循命名慣例,代碼編寫緊湊、簡單和不過度炫耀聰明。代碼的每一行,都應恰如其分地展現出其原有目的。在給不便理解的代碼(塊)合理注釋時,別忘了命名規則。清晰明了的函數名和變量名可以讓代碼不言而明。

在編碼時,有些程序員會有這種心態:過一會兒再來修改或完善某部分代碼或某條語句。但誰知這一“過一會”竟然是“一天”、“一周”、“一個月”或“一年”,甚至以后根本就沒機會再回頭修改。所以,盡量別妥協寫出暫時堪用的代碼。否則,不僅不會節省開發時間,也可以阻礙整個進程。當然也不利于后續維護人員的工作。

9. 能用任何語言編程

優秀的軟件工程師或許有自己一門特別鐘愛的編程語言,但從不會執迷于當中。如今已有很多優秀的編程語言,也就是說,如果你只會使用其中一門語言,說明你缺乏多樣性。你可以用Java、C#C++編寫任何現代軟件,可以用PHP、Perl或Ruby編寫任何網站的后臺。簡而言之,編程所用語言,遠遠沒有語言相應的函數庫重要。優秀的工程師能夠認知到這一點,并愿意去學習新語言、新函數庫和構建系統的新方法。

10. 知曉基本的計算機科學知識

最后,但肯定不是優秀工程師最不重要的特質就是:扎實的基礎。優秀的工程師或許并沒有計算機科學的學位,但他/她必須知道基礎——數據結構和算法。如果不知道哈希表,或者不知道鏈表和數組之間的差別,你如何構建一款大型的軟件?。這些都是每位從事軟件開發的開發人員應當知道的。算法也同樣重要,從二分查找到各種排序,到圖形遍歷,一位明星工程師必須知道并內在消化這些基礎東西。因為這些基礎就是你在構建任何現代軟件中做抉擇時的必備品。

結束語

以上就是區分偉大軟件工程師的諸多特質。其中討論的“熱情”,是非常重要的。代碼重用、設計模式、基礎數據結構和算法都是必須知道的,而敏捷實踐中的重構和單元測試則有助于工程師應對復雜的軟件。尤為重要的是,明星工程師相信簡潔和常識。也正是這些信念,幫助他們成功構建當今世界所需的看似不可能又錯綜復雜的系統。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開發工程師
    +關注

    關注

    1

    文章

    91

    瀏覽量

    14934
收藏 人收藏

    評論

    相關推薦

    我國軟件開發者數量突破940萬

    。目前,開源已覆蓋軟件開發的所有場景,全球97%的軟件開發者和99%的企業使用開源軟件。 工業和信息化部總工程師 謝少鋒:我國已經成為全球開源參與者數量排名第二,增長速度最快的國家,開
    的頭像 發表于 12-24 13:52 ?84次閱讀

    嵌入式工程師常用的開發工具有哪些?

    仿真器可以模擬復雜的微控制器和外設,幫助工程師在早期階段進行軟件開發和調試。這大大縮短了開發周期,降低了開發成本。 總之,嵌入式工程師需要
    發表于 12-20 15:29

    ECU電控軟件開發及測試介紹

    本文重點介紹符合AutoSar架構的應用軟件開發、MBD開發模式下的軟件質量評估與優化方案、復雜場景下的ECU性能壓力測試方案。
    的頭像 發表于 09-26 14:25 ?3343次閱讀
    ECU電控<b class='flag-5'>軟件開發</b>及測試介紹

    求LORA技術開發工程師合作

    求LORA技術開發工程師合作
    發表于 09-02 10:21

    嵌入式軟件開發招聘

    本帖最后由 jf_19082533 于 2024-7-26 13:56 編輯 尋求:嵌入式軟件工程師 要求:3年以上開發經驗,音視頻領域應用層開發 地址:北京市昌平區 郵箱:1017933921@qq.com 歡迎廣大感興
    發表于 07-26 13:44

    【《軟件開發珠璣》閱讀體驗】+ 心得

    ,《軟件開發珠璣》是一本值得每個軟件開發者閱讀的書籍。它教會了我們如何了解需求、設計、項目管理,如何與團隊合作以及如何持續學習和進步。在未來的軟件開發生涯中,我將繼續秉承書中的理念,努力成為一名項目的
    發表于 06-23 17:56

    找STM32硬件開發兼職工程師

    上海做傳感器的公司,找STM32硬件開發兼職工程師,會硬件開發,嵌入式軟件開發,可項目外包。有意聯系:15900460170
    發表于 06-22 19:12

    嵌入式軟件工程師如何提升自己?

    的發展打下堅實的基礎。 2.掌握專業技能 除了基礎知識外,嵌入式軟件工程師還需要掌握專業的技能。包括熟練掌握嵌入式系統的開發工具、硬件平臺和軟件開發流程。建議通過參加培訓課程、實習經
    發表于 06-12 11:20

    名單公布!【書籍評測活動NO.33】做了50年軟件開發,總結出60條經驗教訓,每一條都太扎心!

    的巨頭公司)任職研究科學家的職業生涯早期,我使用計算機來設計和分析實驗。 不過很快我就轉崗成為一名全職的軟件開發工程師,為柯達研究實驗室編寫應用程序,并且在短短幾年內就開始管理一小型的軟件開
    發表于 05-17 14:36

    嵌入式軟件工程師和硬件工程師的區別?

    嵌入式軟件工程師和硬件工程師的區別? 嵌入式軟件工程師 嵌入式軟件工程師軟件開發領域中的一種專業工程師
    發表于 05-16 11:00

    大廠電子工程師常見面試題#電子工程師 #硬件工程師 #電路知識 #面試題

    電子工程師電路
    安泰小課堂
    發布于 :2024年04月30日 17:33:15

    如何搞崩一硬件工程師心態?試試對ta說這幾句

    硬件工程師
    揚興科技
    發布于 :2024年02月20日 18:05:49

    嵌入式軟件開發軟件開發的區別

    嵌入式軟件開發軟件開發是兩不同的概念,它們在一些關鍵方面有著明顯的區別。嵌入式軟件開發是指開發嵌入在硬件設備中的
    的頭像 發表于 01-22 15:27 ?2282次閱讀
    主站蜘蛛池模板: 98久久无码一区人妻A片蜜| 日日摸天天添天天添无码蜜臀| 国产免费久久爱久久啪| 边做边爱免费视频| 被同桌摸出水来了好爽的视频| 52色擼99热99| 中文字幕一区二区三区在线观看| 在线观看国产小视频| 在线观看a视频| 中文字幕中文字幕永久免费| 中国二级毛片| 91精品国产免费入口| 5g天天影院天天看天天爽| 18 japanese宾馆直播| 久久中文字幕无码A片不卡| 九九在线精品亚洲国产| CHINSEFUCKGAY无套| www.绿巨人| 岛国大片在线播放高清| 国产Av男人的天堂精品良久| 国产精品免费观看视频| 国产呻吟久久久久久久92| 国内精品偷拍在线观看| 九九黄色大片| 快播理伦片| 欧美午夜不卡在线观看| 日本一本2017国产| 甜性涩爱bt下载| 亚洲视频精品在线观看| 最近更新2019中文字幕免费| YELLOW日本动漫高清免费| 国产成人免费| 九九夜夜妹子| 男神插曲女生软件完整版| 精品国产乱码久久久久久乱码| 久久婷婷国产五月综合色啪最新| 久久这里只有精品2| 日本红怡院亚洲红怡院最新| 午夜免费福利小电影| 伊人久久电影院| videossexo乌克兰|