程序員素養帖子:What are some of the most basic things every programmer should know?javascript
Bad architecture causes more problems than bad code. 壞的體系結構比壞的代碼引發更多的問題。 You will spend more time thinking than coding. 你會花更多的時間思考而不是編碼。 The best programmers are always building things. 最好的程序員老是在構建東西。 There’s always a better way. 總有更好的方法。 Code reviews by your peers will make all of you better. 你的同齡人的代碼審查會讓大家全部人都變得更好。 Fewer features for better code is always the right answer in the end. 減小特性以得到更好的代碼始終是正確的答案。 If it’s not tested, it doesn’t work. 若是沒有測試,它就不起做用。 Don’t reinvent the wheel, library code is there to help. 不要從新發明輪子,圖書館的代碼是有幫助的。 Code that’s hard to understand is hard to maintain. 難以理解的代碼很難維護。 Code that’s hard to maintain is next to useless. 難以維護的代碼幾乎是無用的。 Always know how your business makes money, that determines who gets paid what. 老是知道你的生意是如何賺錢的,這決定了誰會獲得什麼報酬。 If you want to feel important as a software developer, work at a tech company. 若是你想成爲一名軟件開發人員,在一家技術公司工做。
97 Things Every Programmer Should Know其中有 97 個很是不錯的編程方面的建議。這篇文章是比較經典的,別被 "97" 嚇住,你能夠快速瀏覽一下,會讓你有不一樣的感受的。另外,在工做一段時間後再來讀,你會更有感受。php
必須指出,再往下走,有一個技能很是重要,那就是英文。若是對這個技能發怵的話,那麼你可能無緣成爲一個程序員高手了。由於咱們全部的計算機技術所有來自於西方國家,因此若是你要想成爲一個高手的話,那麼必須到信息的源頭去。英文的世界真是有價值的信息的集散地。你能夠在那裏,到官網上直接閱讀手冊,到 StackOverflow 上問問題,到 YouTube 上看不少演講和教學,到 GitHub 上參與社區,用 Google 查詢相關的知識,到國際名校上參加公開課……css
一、堅持 Google 英文關鍵詞,而不是在 Google 裏搜中文。html
二、在 GitHub 上只用英文。用英文寫代碼註釋,寫 Code Commit 信息,用英文寫 Issue 和 Pull Request,以及用英文寫 Wiki。前端
三、堅持到 YouTube 上天天看 5 分鐘的視頻。YouTube 上有相關的機器字幕,實在不行就打開字幕。java
四、堅持用英文詞典而不是中文的。好比:劍橋英語詞典(https://dictionary.cambridge.org/) 或是 Dictionary.com 。你能夠安裝一個 Chrome 插件 Google Dictionary。node
五、堅持用英文的教材而不是中文的。好比:BBC 的 Learning English ,或是到一些 ESL 網站上看看,如 ESL: English as a Second Language 上有一些課程。python
六、花錢參加一些線上的英文課程,用視頻和老外練習。jquery
提問的智慧(How To Ask Questions The Smart Way)、中文翻譯版http://doc.zengrong.net/smart-questions/cn.htmlgit
X-Y Problem、中文https://coolshell.cn/articles/10804.html
StackOverflow 如何問問題的一些提示 -- 「FAQ for StackExchange Site"
另外,做爲一個程序員,Code Review 是很是重要的程序員修養。 Code Review 對個人成長很是有幫助,我認爲沒有 Code Review 的公司都沒有必要呆(由於不作 Code Review 的公司必定是不尊重技術的)。下面有幾篇我以爲還不錯的 Code Review 的文章,供你參考。
除了 Code Review 以外,Unit Test 也是程序員的一個很重要的修養。寫 Unit Test 的框架通常來講都是從 JUnit 衍生出來的,好比 CppUnit 之類的。學習 JUnit 使用的最好方式就是到其官網上看 JUnit User Guide(中文版)。而後,有幾篇文章你能夠看看(也能夠自行 Google):
OWASP - Open Web Application Security Project
OWASP 是一個開源的、非盈利的全球性安全組織,致力於應用軟件的安全研究。其被視爲 Web 應用安全領域的權威參考。2009 年,國際信用卡數據安全技術 PCI 標準將其列爲必要組件,美國國防信息系統局、歐洲網絡與信息安全局、美國國家安全局等政府機構所發佈的美國國家和國際立法、標準、準則和行業實務守則參考引用了 OWASP。
https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
OWASP Top 10 項目 是程序員很是須要關注的最基本的也是最嚴重的安全問題,如今其已經成了一種標準,這裏是其中文版《OWASP Top 10 2017 PDF 中文版》
下面是安全編程方面的一些 Guideline。
伯克立大學的 Secure Coding Practice Guidelines
卡內基梅隆大學的 SEI CERT Coding Standards
一篇和 HTTP 相關的安全文章也是每一個程序員必需要讀的——《Hardening Your HTTP Security Headers》。
防護性編程(Defensive Programming):The Art of Defensive Programming、Overly defensive programming
系統上線是一件比較嚴肅的事,這代表你寫的軟件不是跑在本身的機器上的玩具,或是實驗室裏的實驗品,而是交互給用戶使用的,甚至是用戶付費的軟件。對於這樣的軟件或系統,咱們須要遵照一些上線規範,好比,須要認真測試,並作上線前檢查,以及上線後監控。下面是幾個簡單的規範,供你參考。
《完美軟件:對軟件測試的各類幻想》,這本書重點討論了與軟件測試有關的各類心理問題及其表現與應對方法。做者首先闡述軟件測試之因此如此困難的緣由–人的思惟不是完美的,而軟件測試的最終目的就是發現對改善軟件產品和軟件開發過程有益的信息,故軟件測試是一個信息獲取的過程。
《Google 軟件測試之道》,描述了測試解決方案,揭示了測試架構是如何設計、實現和運行的,介紹了軟件測試工程師的角色;講解了技術測試人員應該具備的技術技能;闡述了測試工程師在產品生命週期中的職責;講述了測試管理,並對在 Google 的測試歷史上或者主要產品上發揮了重要做用的工程師的訪談,這令那些試圖創建相似 Google 的測試流程或團隊的人受益很大。
Checklist :
有修養的程序員纔可能成長爲真正的工程師和架構師,而沒有修養的程序員只能淪爲碼農。
C 語言
C++ 語言
Go 語言
Java 語言
JavaScript 語言
還有一些其它相對比較簡單的 JavaScript 編程規範。
JavaScript Style Guides And Beautifiers ,這是一篇推薦 JavaScript 編程規範的文章。
PHP 語言
Python 語言
Ruby 語言
Rust 語言
Scala 語言
Scala Style Guide,Scala 官方的編程規範。
Databricks Scala Guide - Databricks 的 Scala 編程規範。
Shell 語言
Node.js 相關
Mozilla 的編程規範
CSS Guidelines,CSS 容易學,可是很差寫,這篇規範會教你如何寫出一個健全的、可管理的,並能夠擴展的 CSS。
U.S. Web Design Standards,這是美國政府網端要求的一些 UI 交互可視化的一些規範。
最後是一個前端開發的各類注意事項列表,很是有用。
Objective-C Style guide,Style guide & coding conventions for Objective-C projects。
Google Objective-C Style Guide
NYTimes Objective-C Style Guide ,The Objective-C Style Guide used by The New York Times。
Swift - 一個 Swift 的相關編程規範的教程。
Metova’s Swift style guide:https://github.com/metova/swift-style-guide
Xmartlabs Swift Style Guide:https://github.com/xmartlabs/Swift-Style-Guide