# 个人技术博客

首先,我先推荐一些不错的个人技术博客。

  • Coding Horror ,这是杰夫·阿特伍德(Jeff Atwood)于2004年创办的博客,记录其在软件开发经历中的所思所想、点点滴滴。时至今日,该博客每天都有近10万人次的访问量,读者纷纷参与评论,各种观点与智慧在这里不断地激情碰撞。其博文选集在中国被翻译成《高效能程序员的修练》,在豆瓣上有8.3的高分。2008年,他和Joel Spolsky联合创办了 StackOverflow 问答网站,为程序员在开发软件时节省了非常多的时间,并开启了“StackOverflow Copy + Paste 式编程”。

  • Joel on Software ,Joel Spolsky的这个博客在全世界都有很多的读者和粉丝,其博文选集在中国被翻译成《软件随想录》在豆瓣上有8.7的高分。这是一本关于软件技术、人才、创业和企业管理的随想文集,作者以诙谐幽默的笔触将自己在软件行业的亲身感悟娓娓道来,观点新颖独特,简洁实用。

  • Clean Coder Blog ,这是编程大师“Bob 大叔”的博客,其真名叫Robert C. Martin,世界级软件开发大师,设计模式和敏捷开发先驱,敏捷联盟首任主席,C++ Report前主编,被后辈程序员尊称为“Bob大叔”。其博文选集在中国被翻译成《程序员的职业素养》,在豆瓣上有8.8的高分。

  • Martin Fowler ,这是另外一个程序员大师,Martin主要专注于面向对象分析与设计、统一建模语言、领域建模,以及敏捷软件开发方法,包括极限编程。他的《重构》、《分析模式》、《企业应用架构模式》、《领域特定语言》和《NoSQL精粹》都是非常不错的书。在他的博客上有很多很多的编程和架构模式方法可以学习。

  • Paul Graham Essays ,美国著名程序员、风险投资家、博客和技术作家。《黑客与画家》是他的著作之一。2005年他与人共同创建了著名的创业投资公司Y Combinator,是初创公司最想被投的。他有几篇创业方面的文章都很经典,如果你想创业,可以读一读这几篇:《How to Get Startup Ideas》、《Do Things that Don’t Scale》、《Startup = Growth》。Paul Graham的文章以清新自然,思想深刻见长。不仅可以跟Paul Graham学创业,学思考,学技术,更可以学习写作。

  • Steve Yegge ,Steve Yegge这个人算是一个知名的程序员了,在Amazon呆过,现在在Google,他的文章都是长篇大论,最知名的文章就是对Amazon和Google平台的吐槽,这篇文章引发了大家的讨论和议论。

  • Bruce Eckel’s Programming Blog ,《Thinking in Java》作者的博客,他之前的博客在artima - Computing Thoughts

  • Herb Sutter ,C++大拿,C++标准委员会专家,微软软件架构师。《Exceptional C++ 》、《More Exceptional C++》、《Exceptional C++ Style》作者。

  • Eli Bendersky’s website ,这位老哥从2003年就一直写博客到今天,其中的文章都非常不错,原理型的,主要是C、C++和Python相关的。里面有很多干货。

  • Peter Krumins’ blog ,这位老哥从2007年开始写博客,他博客里好玩的东西太多了。

  • Brendan D. Gregg ,Brendan是Netflix的工程师,他的博客里有大量的非常非常不错的文章,基本上都是和Linux性能分析相关的,这是一个如果你要玩底层性能分析一定不能错过的博客。

  • Evan Klitzke ,主要讨论Linux和C++相关的内容。

  • Julia Evans ,主要讨论Linux debug工具和网络相关的内容。

  • null program ,和C/C++相关的一个博客。其中关于Linux系统调用、GPU、无锁编程、JIT编译的一些文章非常不错。

  • Fluent {C++} ,博主是Murex的首席工程师,主要玩C++,在这个博客里有很多很不错的C++相关的文章。

  • Preshing on Programming ,这也是一个和C/C++相关的博客,其中有很多的干货。

  • Programming is Terrible ,这个博客有很多强观点的文章,主要是软件开发中的一些教训。

  • Accidentally Quadratic ,姑且翻译成事故二次方,这里有好些非常有趣的文章。

  • Hacker Noon ,这是一个一堆人在写的博客,里面有很多质量很高的文章。

其实还有很多不错的博客,不过,现在国外不错的博客都在一个叫 Medium 的网站,我也发现我Google很多东西时都会到这个网站上。这个网站上的内容不只有技术的,还有很多很多其他方面的内容,比如文化、艺术、科学等等。这个网站就是一个博客发布系统,其是由Twitter联合创始人埃文·克拉克·威廉姆斯(Evan Clark Williams)和克里斯多福·艾萨克·比兹·斯通(Christopher Isaac Biz Stone)创办的,这两个人觉得Twitter上全是垃圾没有营养的信息。所以,创办了Medium,这个平台上有专业和非专业的贡献者,亦有受雇的编者。

我已经感觉到,未来高质量的文章都会在Medium这个平台上出现,因为有一些公司的技术博客也在这个平台上发布了,比如Netflix的。所以,你有必要上到这个平台上 follow 一些作者、专栏和主题。

# YouTube 技术频道

下面是我订阅的一些我认为还不错的和编程相关的频道,推荐给你。

  • Devoxx ,Devoxx的频道,其中有各种很不错的技术分享。

  • Coding Tech ,也是个非常不错的编程频道,涵盖各种技术。

  • Amazon Web Services

  • Facebook Developers

  • Google Developer ,Google公司的官方频道,其中包括Google I/O 大会、教程、新闻、最佳实践、技巧分享……

  • Spring Developer ,Spring的官方频道。

  • Microsoft Research

  • MIT 公开课

  • Stanford Online

  • Prof. Dr. Jens Dittrich ,一个德国教授开的一个关于数据库相关的频道,里面有很不错的数据库内在原理的内容。

  • Red Hat Summit ,RedHat峰会频道,其中有很多和Linux相关的技术新闻和分享。

  • Open Networking Summit ,这是一个网络相关的频道。

  • Dan Van Boxel ,这是一个机器学习工程师折腾各种事的视频,挺有意思的。

  • The New Boston ,这个频道应该是前端开发工程师必去的地方,可能也是我所知道的最好的关于前端技术的YouTube频道。

  • Derek Banas 是一个教程型的频道,其中包括编程语言、游戏开发、Web开发……我个人觉得是一个可以用来练英文听力的频道。

  • Java ,Java相关的各种分享。

  • CppCon ,C++大会的一些视频,可以让你了解很多C++最新功能和相关的动态。

  • Computerphile ,这个频道是布雷迪·哈伦(Brady Haran)运作的几个频道中的一个,在这个频道里你可以看到很多很有趣的技术方面的科普教程、资讯、见闻等,说得都非常地简单易懂,所以有大量的订阅用户。布雷迪是个对任何技术都很有热情的人,这个频道是关于计算机技术的。除此之外,他还运作 Numberphile(数学)、Periodic Videos(化学)、Sixty Symbols(物理)、Deep Sky Videos(天文)等有众多阅人数的频道。如果你喜欢,你都可以一一订阅,感觉就是一个个人版的Discovery。

  • 关于安全,有如下四个频道你可以订阅一下:

# 各大公司技术博客

细心的你一定会发现这份攻略中的很多推荐文章都来自于各个公司的技术团队的博客。是的,跟随这些公司的博客,你不但可以看到这些公司的工程技术,还能掌握到一些技术方向和趋势。

下面是Airbnb、AWS、Cloudera、Dropbox、Facebook、Google等各个公司的技术博客列表。

# 论文

要想将技术研究得精深,论文是必不可少的。那要如何读论文呢?

# 如何读论文

下面有几篇文章,教你一些读论文的方法,非常不错。

# 论文集散地

要成长为一个高手,论文是你一定要读的。下面是一些非常不错的计算机方面的论文集散地。

  • 2 Minute Papers ,这是一个YouTube的频道,其会给出一些非常不错的和计算机相关的论文介绍,让你了解目前最有意思的一些科学突破,每次两分钟左右。

  • Best Paper Awards in Computer Science ,从1996年以来,获奖的计算机科学方面的论文收集。

  • Google Scholar ,Google学术搜索(英语:Google Scholar)是一个可以免费搜索学术文章的网络搜索引擎,由计算机专家阿努拉格·阿查里雅(Anurag Acharya)开发。2004年11月,Google第一次发布了Google学术搜索的试用版。该项索引包括了世界上绝大部分出版的学术期刊。

  • Facebook ,Facebook公司的论文。

  • Research at Google ,Google发布一些论文。

  • Microsoft Research ,微软发布的论文。

  • MIT’s Artificial Intelligence Lab Publications ,MIT和人工智能相关的论文。

  • MIT’s Distributed System’s Reading Group ,MIT和分布式系统相关的论文。

  • arXiv Paper Repository ,arXiv是一个收集物理学、数学、计算机科学与生物学的论文预印本的网站,始于1991年8月14日。截至2008年10月,arXiv.org已收集超过50万篇预印本。至2014年底,藏量达到1百万篇。

    在2014年时,约以每月8000篇的速度增加。arXiv的存在是造就科学出版业中所谓开放获取运动的因素之一。现今的一些数学家及科学家习惯先将其论文上传至arXiv.org,再提交予专业的学术期刊。这个趋势对传统学术期刊的经营模式造成了可观的冲击。

  • SciRate ,arXiv上的论文太多,所以,SciRate索引了arXiv上的一些好评的论文,并供大家评论和打分。(开源代码。)

  • cat-v.org ,这个网站,不只有论文,还有技术手册或是一些有意思的文章,包括一些历史资料什么的。

  • Usenix: Best Papers ,Usenix上推荐的最佳论文。

  • The Morning Paper ,该博客会每天推送一篇论文,特别棒。

  • Lobste.rs tagged as PDF ,Lobsters是一个聚焦于技术的社区,主要是链接聚合和对话题进行讨论。其中的PDF分类可以认为也是一个论文的集散地。

  • Papers We Love ,GitHub上的一个近3万颗星的计算机科学方面的论文社区。

# 小结

总结一下今天的内容。这篇文章我主要跟你分享了一些好的学习资源,帮你开拓眼界,为后续学习夯实基础。

首先,我推荐了Coding Horror、Joel on Software、Clean Coder Blog、Martin Fowler、Paul Graham Essays等多个知名的个人技术博客。然后分享了一些我订阅的我认为还不错的和编程相关的YouTube频道,比如Coding Tech、Amazon Web Services、Facebook Developers、Google Developer等。

随后是Airbnb、AWS、Cloudera、Dropbox、Facebook、Google等各个公司的技术博客,跟随这些公司的博客,你不但可以看到这些公司的工程技术,还能掌握到一些技术方向和趋势。最后,想成长为一个高手,论文是一定要读的。所以,我给出了一个非常不错的计算机方面的论文集散地,并推荐了一些学习资源来教你如何读这些论文。

我一直认为,学习需要自我驱动,要学会自己“找食物”,而不是“等着喂”。程序员练级攻略2018版到今天就全部更新完成了,但我认为,这其实只是技术练级的起点,还有很多知识和技术,需要我们不断地去探索和发现。加油,我能做到的,你一定也可以做到。

下面是《程序员练级攻略(2018)》系列文章的目录。