2019年對開發者的19條建議
譯文【51CTO.com快譯】軟件工程師如何面對不斷涌現的新技術?Dev 上的網友 Emma Wedekind 編撰了 19條建議 ,希望對處于迷茫時期的工程師有一定的借鑒意義。
1.永遠不要氣餒
我每天都提醒自己,任何人在他們的軟件開發生涯中,都會遇到和我一樣的困難。所有科技界的優秀者都是和我一樣從“ 萌新 ”開始的。
你身邊可能有很多人學的比你快!那是正常的。不要因為這個而自暴自棄。
如果你是做一名前端開發者,那么請磨練你的 HTML、CSS 和 JavaScript 技能。不要輕視這些技能。雖然這些技術乍看之下并不高深,但是想要成為一名合格的前端開發者,必須對它們有著更加深入的了解。這也是為什么許多大公司更加重視考察應聘者對基礎技能 ,而不是流行的框架的掌握情況。
軟件工程師可以免費從互聯網上學到關于軟件開發的一切知識。但是你要記住的是,盡管互聯網上有著海量的資源,但是你不需要了解所有。請從基礎開始!
如果你想走后端路線,可以嘗試一下 Java 和 Python,它們是目前在工業界非常流行的技術。
但是要記住,永遠不要氣餒??傆行┤兆幽銜灰恍┐煺蹓旱么贿^氣來。但是你要記住,任何軟件開發的從業者,一開始都會遇到和你一樣的問題。隨著你的不斷進步,會越來越好的!
2.學會閱讀別人的代碼
學會閱讀其他開發者的代碼,是軟件工程師必須掌握的重要技能之一,它可以幫助你高效地在不同的代碼庫中工作。
想要了解別人的代碼說明了什么,你不需要了解編程語言的所有細節。你只需檢出( check out )那些你所感興趣的開源項目,認真閱讀相應的文檔和源碼,看看是否能夠解讀出一些東西。
堅持下去,你也許就會慢慢的發現,在這些項目中也存在著值得改進的地方??赡懿痪煤?,你自己也能提交 Pull Request。
學會閱讀和檢查( review )代碼會花費你不少的時間,但是這些付出都是值得的。
3.找到適合的學習方式
每個人都有適合自己的學習方式。有些人喜歡直接上手寫代碼來學習,有些人喜歡按部就班的看書和視頻來學習。
找到適合自己的學習方式,并去廣泛接觸相關的學習資源,你會發現自己將變得更有效率。
4.參與到社區中
在職業生涯的起初三年中,我都沒有參與到線上的技術社區中來。這個缺失,給我帶來了不少的困擾。
我一直被自我否定(冒名頂替癥候群)所困擾,并且很難保持學習的動力。但是當我找到博客上的開發者社群后,我對學習的投入大大地增加了。
找到一個開源項目,在 GitHub 上維護一個項目。一旦你找到一種方式來參與到社區中,你就會很快建立與編程之間的親密關系。
5.理論和實踐并進
為了成為一個優秀的程序員,你必須要理解代碼背后的一些原理。雖然我們身處的時代,一個人無需獲得計算機學位也可以在技術領域上獲得成功。但是話說回來,計算機科學中提出的一些概念仍然具有很高的價值。
你無須學會計算機科學中所有的理論知識。但是你必須能夠利用理論來解釋,為什么一個解決方案優于另一個 。
6.不要和別人比較
你永遠無需追隨其他開發者的腳步。你也不應該拿自己與別人進行比較。你和你所掌握的技能都是特別的。
某位大牛在學習 Ruby on Rails 并不意味著你也要去學習。找到那些能激發你編程熱情的技能,并盡自己的努力去學習它。
學習一門技術也沒有特定的時間規定。就像第三點提到的一樣,每個人有不同的學習方式,每個人也有不同的學習速度。
7.參與到開源中
開源社區如此繁榮,為什么不去參與呢?如果需要提升你閱讀代碼的能力,找一個開源項目開始吧!
8.習慣跳出舒適區
科技行業在不斷的變化,這意味著總有不斷涌現的新技術等待你去學習。雖然這乍看起來讓人畏懼,但是這也意味著你可以輕而易舉的找到一個新技術來學習。你永遠不會感到厭倦。
鍛煉你代碼能力好的方式是解決一個能夠“嚇倒”你的問題。你可以自愿地在工作中承擔一些具有挑戰性的任務。也可以在業余時間利用新技術解決這些挑戰。
你盡可能習慣跳出舒適區,去探索那些未知的答案。
9.不要畏懼提出問題
你遲早會遇到一個連 StackOverflow 都無法解決的問題。
學會辨別自己何時需要幫助是非常重要的。當你嘗試了所有可能解決的方案,但卻一無所獲,那么是時候尋求幫助了。
雖然有時候我也會很猶豫,但是提出問題并不意味著你很菜。
10.找到支持你的人
編程是很困難的。但是你總有些日子會覺得自己不適合做這行。
因此你必須和能夠相信你的人在一起。和那些能夠幫助你建立自信的家庭成員和朋友在一起,遠離那些說風涼話的人。
11.專注一件事情
一心二用讓人平庸。人類不適合同時處理多件事情。
在一段時間內專注做一件事情。盡自己的努力去學習、完成它。一旦完成,再去做下一件事情。
不要試圖去兼顧幾件事情。
12.學會技術選型
在你軟件開發的職業生涯中,會接觸到非常多不同的技術。哪種技術適用于解決哪種問題往往是非常令人頭疼的一件事情。
去了解不同的技術的實際使用場景。什么時候你應該選擇這個技術而不是那個?這些技術如何能夠組合到一起?
這些重要的問題,都是你應該學會去回答的。
13.找到合適的工具
開發人員永遠不缺工具。就我而言,就可以列舉出至少5個曾經使用過的 IDE 工具。
工具的數量之大有時候會讓人崩潰。去做一些調查研究來決定哪種工具更加適合你。下面的一些問題可以作為參考:
這個工具還在被維護嗎?
目前在開發這社區中使用這個工具的人多嗎(方便你遇到問題的時候能夠有人幫助解決)?
工具配置的難度如何?
集成這個工具之后會對性能有影響嗎?
我不用這個工具能夠解決問題嗎?
工具的存在并不意味著你要去使用它。
14.平衡工作和生活
你不必把所有的時間都投入到編程中。事實上,這么做反倒是有害健康的。
你必須保持工作和生活的平衡,否則也許你要承擔精疲力盡的后果。
如果你從早到晚都在做同一件事情,那么你很快會憎恨它。
分一部分時間給自己還有愛好,你可以讓自己的編程之路走的更加健康。
15.學習一些設計的基礎知識
如果你正在構建面向用戶的應用程序,你應該了解一些設計的基本知識。我并不是說你需要學習如何使用 Sketch 或 Adobe Illustrator,而是學習 UX 設計會對你的應用程序產生積極影響。
你不能假設每個用戶都能根據你的設想去使用你的應用程序。事實上,你不應該對用戶的行為做出假設。
在決定哪種設計適合你的應用之前,你要先了解這些 UI 設計背后的原理。
例如,我們發現帶有正方形邊緣的按鈕實際上比帶有圓形邊緣的按鈕更適合用戶,因為它們包含更多的像素。
了解這些設計的基礎知識之后,你可以讓你的 Web 應用更加亮眼。
16.找到一位技術導師
好的導師可遇不可求,但卻是必要的。你可以從他那里學到從職業建議到成功實踐等無價的技能。
向那些你敬佩的人提問永遠沒有壞處。最壞的情況不過是被拒絕而已!
記住,隨著時間的推移,需要重新評估你的師友關系,好讓你們不斷進步。
17.設計好作品和簡歷
作品和簡歷是你在面試過程中給雇主的印象。有必要展現出你好的一面。
確保沒有錯別字和語法錯誤。確保格式的一致性和合理性。
18.從失敗中學習
如果你犯了一個錯誤,那就從中學到點什么。不要讓同一個錯誤發生兩次。失敗并不意味沒有價值。
在成功人士的背后,你看不到的是一次又一次的失敗。
項目一開始,你不必試圖去讓你的網站變得如何漂亮。專注于底層技術實現它,稍后再考慮如何讓它看起來更美觀。
19.砥礪前行
總有些日子,你會想放棄編程。這注定是條艱難的道路,每位軟件開發從業者都會在某些時刻否定自己。
你不是孤獨的。隨著時間的推移,你會發現編程會變得越來越順手。
日復一日,所有一切會變得好起來的。
砥礪前行吧!
關于譯者,邱仁博,多年運營商商業分析、數據中心數據庫方向工作經驗,現任職于某地市圖書館信息技術部。日常關注國內外極客新聞、前后端技術。海外知識搬運工。
原文標題:19 Tips For Software Engineers In 2019,作者:Emma Wedekind
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】