PANO_20120909_172338

0. 科学上网

学会科学的上网是程序员的必备技能之一,也是下面讲述的攻略的基础,这里不展开将如何科学上网,贴个左耳朵耗子的github地址大家自行膜拜。

https://github.com/haoel/haoel.github.io

1. 官方文档

学习一门新技术时,官方文档是首选,官方文档会提供准确,权威的资料,通过官方文档入手,能够保证认知上不会有太大的偏差,远胜过在网上搜到的那些质量参差不齐的二手资料,教程,特别是对于初学者根本无法分辨质量的好坏。

印象最深的是MongoDB的官方文档,写的非常系统,非常调理,几乎你能想到的问题通过关键词都可以搜索到解决方案,当然也建议阅读英文原版,英文实在太差的看中文社区的翻译版也可以,总之是好过什么菜鸟网之类的一些教程网站。

2. 用好Google

你为什么一定要使用 Google ?

人生苦短 我用Google

讲一个小故事,团队里有一次在一个C#程序里做二次开发,需要打印二维码,当时试过很多办法都没有解决掉问题,当时开发同学说他把百度搜索结果页翻了几十页,没有找到有用的信息,寻求我的帮助,我就说了一句“为什么不试试谷歌呢?”,然后再谷歌搜索的第一页第一条记录里就精准的找到了解决方案。

Keywords

  • xxx best practices/xxx最佳实践
  • awesome xxx
  • xxx right way/xxx之道

时间过滤

搜索时选择最近1年的记录,如果找不到再扩大范围,因为技术更新太快,新的解决方案总是建立在旧的经验之上的。

3. 用好Github

Keywords: 同google

  • xxx best practices/xxx最佳实践
  • awesome xxx
  • xxx right way/xxx之道

指定搜索范围

  • octocat in:file 搜索文件中有octocat的代码
  • octocat in:path 搜索路径中有octocat的代码
  • octocat in:file,path 搜索路径中有octocat的代码或者文件中有octocat的代码
  • display language:sass 搜索用scss写的包含display的代码

通过语言搜索代码

  • element language:xml size:100 搜索大小为100字节的xml代码
  • user:mozilla language:markdown 搜索mozilla用户下用markdown写的代码

通过fork的数量或者是否有父节点的方式搜索

  • android language:java fork:true 搜索用java写的 android相关的代码并且被fork过
  • function size:>10000 language:python 搜索与function相关的python代码,文件大小超过10kb

按照目录结构搜索

  • console path:app/public language:javascript 在app/public directory目录下搜索console关键字
  • form path:cgi-bin language:perl 搜索cgi-bin目录下包含form的perl代码

通过文件名搜索

  • filename:.vimrc commands 搜索 文件名匹配.vimrc 并且包含commands的代码
  • minitest filename:test_helper path:test language:ruby 在test目录中搜索包含minitest且文件名匹配”test_helper”的ruby代码

根据扩展名来搜索代码

  • form path:cgi-bin extension:pm 搜索cgi-bin目录下以pm为扩展名的代码
  • icon size:>200000 extension:css 搜索超过200kb包含icon的css代码

通过用户或者组织来查找

  • user:github extension:rb 查找github用户中以rb为扩展的代码
  • repo:mozilla/shumway extension:as 搜索mozilla的shumway以as为扩展的代码

根据star数搜索

  • react starts:>300 搜索react相关的,且star数量大于300的项目

搜索结果可以根据需要排序,网站上提供了排序的选项,更多搜索需求可以选择高级搜索

4. SegmentFault/StackOverflow

Stack Overflow集合google可以解决90%以上的技术问题,知乎有一篇讨论如何优雅使用Stack Overflow的文章,我这里放个链接就不多废话了

如何优雅地使用 Stack Overflow?

当然照顾下英文不好的同学,SegmentFault上也能解决一部分问题。

5. 极客时间/Medium/OsChina/Csdn/知乎/掘金/慕课/YouTube

都说学习是反人性的,但爱学习的人看到好的博文好的教程都想快速的学习,那时间有限如果在有限的时间高效的学习呢?公众号MacTalk的池大大的建议是有些文章可以加入到收藏夹或者使用笔记软件记录下来,最关键的是要分类,哪些属于稍后读的,哪些属于知识库往后遇到可以通过检索的方式再读,哪些属于需要精读的,哪些属于快速过一遍的。

现在是信息过载的时代,如果需要系统的学习某一技术或某一领域我的建议是选择付费的内容,不能说付费的就比免费的香,但总归付费的内容更系统,学习的时间成本是要低很多的,强烈推荐“极客时间”

6. English

英语学习是程序员绕不开的,话说程序员也都知道学习英语的重要性,那你到底真的是这么认为的吗?那你行动起来了吗?这里放一个链接:

对于程序员, 为什么英语比数学更重要? 如何学习

我的建议:可以练习、不求速成、日拱一卒、持续精进

0. 科学上网

学会科学的上网是程序员的必备技能之一,也是下面讲述的攻略的基础,这里不展开将如何科学上网,贴个左耳朵耗子的github地址大家自行膜拜。

https://github.com/haoel/haoel.github.io

1. 官方文档

学习一门新技术时,官方文档是首选,官方文档会提供准确,权威的资料,通过官方文档入手,能够保证认知上不会有太大的偏差,远胜过在网上搜到的那些质量参差不齐的二手资料,教程,特别是对于初学者根本无法分辨质量的好坏。

印象最深的是MongoDB的官方文档,写的非常系统,非常调理,几乎你能想到的问题通过关键词都可以搜索到解决方案,当然也建议阅读英文原版,英文实在太差的看中文社区的翻译版也可以,总之是好过什么菜鸟网之类的一些教程网站。

2. 用好Google

你为什么一定要使用 Google ?

人生苦短 我用Google

讲一个小故事,团队里有一次在一个C#程序里做二次开发,需要打印二维码,当时试过很多办法都没有解决掉问题,当时开发同学说他把百度搜索结果页翻了几十页,没有找到有用的信息,寻求我的帮助,我就说了一句“为什么不试试谷歌呢?”,然后再谷歌搜索的第一页第一条记录里就精准的找到了解决方案。

Keywords

  • xxx best practices/xxx最佳实践
  • awesome xxx
  • xxx right way/xxx之道

时间过滤

搜索时选择最近1年的记录,如果找不到再扩大范围,因为技术更新太快,新的解决方案总是建立在旧的经验之上的。

3. 用好Github

Keywords: 同google

  • xxx best practices/xxx最佳实践
  • awesome xxx
  • xxx right way/xxx之道

Advanced search

指定搜索范围

  • octocat in:file 搜索文件中有octocat的代码
  • octocat in:path 搜索路径中有octocat的代码
  • octocat in:file,path 搜索路径中有octocat的代码或者文件中有octocat的代码
  • display language:sass 搜索用scss写的包含display的代码

通过语言搜索代码

  • element language:xml size:100 搜索大小为100字节的xml代码
  • user:mozilla language:markdown 搜索mozilla用户下用markdown写的代码

通过fork的数量或者是否有父节点的方式搜索

  • android language:java fork:true 搜索用java写的 android相关的代码并且被fork过
  • function size:>10000 language:python 搜索与function相关的python代码,文件大小超过10kb

按照目录结构搜索

  • console path:app/public language:javascript 在app/public directory目录下搜索console关键字
  • form path:cgi-bin language:perl 搜索cgi-bin目录下包含form的perl代码

通过文件名搜索

  • filename:.vimrc commands 搜索 文件名匹配.vimrc 并且包含commands的代码
  • minitest filename:test_helper path:test language:ruby 在test目录中搜索包含minitest且文件名匹配”test_helper”的ruby代码

根据扩展名来搜索代码

  • form path:cgi-bin extension:pm 搜索cgi-bin目录下以pm为扩展名的代码
  • icon size:>200000 extension:css 搜索超过200kb包含icon的css代码

通过用户或者组织来查找

  • user:github extension:rb 查找github用户中以rb为扩展的代码
  • repo:mozilla/shumway extension:as 搜索mozilla的shumway以as为扩展的代码

根据star数搜索

  • react starts:>300 搜索react相关的,且star数量大于300的项目

搜索结果可以根据需要排序,网站上提供了排序的选项,更多搜索需求可以选择高级搜索

4. SegmentFault/StackOverflow

Stack Overflow集合google可以解决90%以上的技术问题,知乎有一篇讨论如何优雅使用Stack Overflow的文章,我这里放个链接就不多废话了

如何优雅地使用 Stack Overflow?

当然照顾下英文不好的同学,SegmentFault上也能解决一部分问题。

5. 极客时间/Medium/OsChina/Csdn/知乎/掘金/慕课/YouTube

都说学习是反人性的,但爱学习的人看到好的博文好的教程都想快速的学习,那时间有限如果在有限的时间高效的学习呢?公众号MacTalk的池大大的建议是有些文章可以加入到收藏夹或者使用笔记软件记录下来,最关键的是要分类,哪些属于稍后读的,哪些属于知识库往后遇到可以通过检索的方式再读,哪些属于需要精读的,哪些属于快速过一遍的。

现在是信息过载的时代,如果需要系统的学习某一技术或某一领域我的建议是选择付费的内容,不能说付费的就比免费的香,但总归付费的内容更系统,学习的时间成本是要低很多的,强烈推荐“极客时间”

6. English

英语学习是程序员绕不开的,话说程序员也都知道学习英语的重要性,那你到底真的是这么认为的吗?那你行动起来了吗?这里放一个链接:

对于程序员, 为什么英语比数学更重要? 如何学习

我的建议:可以练习、不求速成、日拱一卒、持续精进