程序员素养帖子: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