github-ten.png
你要问我这个世界上什么学习方法是坚持下去最有效果 -- 模仿。
深度模仿。
2014年9月,正式来到上海,不为别的,为了读书。为了获得更高的学历。
那时,我没有想好,未来到底应该从事什么工作。也许搞电器、电机吧。因为专业是这相关的。
大学四年的学习,大概让我明白。我可能不太喜欢这门专业。
读研的一段时间下来,发现也不是太喜欢科研,尤其是导师的科研偏向理论化,内心没有太大的想要提高科研水平的想法。
之后的时间内,我开始了摸索。
如何可以只有一台电脑就可以掌握技能,并找到工作呢? 如何只要有网络就可以连接这个世界?
于是,我开始了学习编写代码。
摸索了一段时间,初步确定职业向程序员方向发展。
于是我像小白一样,开始了自学的道路。
github-ten.png
2015年3月17日,注册加入Github, 那时的我远没有发现这个代码托管平台的好处。甚至我远没有理解到整个Github 的功用。
后来自己想要学习Git 这个分布式版本控制工具而注册Github,伊始Github 完全是个人的代码备份空间。
和网盘的功能类似:备份个人代码。虽然代码都是些零零碎碎。不值得看的代码。
渐渐学会了Git 的使用。回头看来,其实知识是无穷无尽的。但是常用的其实并多。
学习需要使用 二八法则。
2015年11月,加入一家创业公司实习,正式开始从事写代码的工作。
因为创业公司比较小,碰巧这家公司又给了我这个机会,于是就这样踏上了程序员的道路。
在工作中开始频繁使用 git 和 github。
开始了解 github。 实习时间不是很长,但我渐渐意识到:
不管你是在学校、小公司、大公司...,谁都不可能手把手教你。你需要的知识,你想要了解的技术,无一不是靠自学习得。
初级程序员想要学习,会在网上收集大量教程,收集大量PDF 电子书,搜索各种各样的代码实例。
到了一定的阶段,回过头来会发现,其实网上的二手知识,实在是太多了。因为程序员行业的自学的人特别的多,加上程序员又是一个非常喜欢分享的群体。
会出现这种情况:
各种各样的人对知识的不同的理解而产生的二手、三手、四手等知识不断的在网上传播。
包括我自己也产生了很多二手知识。但只要有一点能对人产生帮助,我就不会停止分享。更何况我是抱着真实的态度在分享文章。
工作一年后,我对程序员有了新的认识。我对开源有了新的认识。
我更加热衷程序员的职业,我更加喜欢开源。我更加喜欢官方的知识。一遍看不懂,就多看几遍,随着你看的次数多了,相信我,你会越来越懂。
Github 则是这个世界上最大的开源代码托管平台。有着无数的喜欢分享的程序员在分享接近一手知识的开源代码。有着无数的开源代码可以让我们模仿。
找到几个自己从事行业相关的,坚持阅读下去。坚持模仿下去。坚持创造一些稍有不同的轮子。
即: Github 是程序员的金矿,我们可以模仿任意轮子,优化自己思维,提高自己水平。
Github 10 年 Github Ten
如何使用好 Github?
大凡热门的项目一定有非常详尽的使用文档。而Markdown 成为 Github README 的标配,甚至成为程序员的标配。
程序员都应该熟悉 Markdown 语法。
对于组织项目的文档说明,另一种比较好的标记语言是 reStructuredText 。
Markdown 入门:Markdown Cheatsheet
reStructuredText 入门:RestructuredText
语法很详尽,看上去很难入门。相信我:
照着下面的流程走:
好了,想要更丰富的语法? 入手了上面几个问题,可以查文档了。
emoji 图形符号, 是一个文字,被渲染成图形。
这里是一份 对照表手册: emoji
Twitter emoji: emoji
twitter-emoji.png
Emoji Search: emoji search
emoji.png
Emoji 在你提交 commit message 、写 markdown 格式文档、讨论 issues 的时候显得更有趣一些。
github 项目分为个人开源项目和隐私项目,后者付费。对普通开发者而言,个人开源项目即可。
现在Github 个人的项目一定程度上能体现作者的代码水平。甚至越来越成为程序员面试、跳槽等的指标之一。
即借助一些微图标、图形,美化项目的简介,配合Markdown 语法使用
shields.png
常见微标:
CI : 持续集成
CI
测试覆盖率
Coverage
下载数量
download
文档
doc
版本信息
version
项目语言
Golang
Golang
Golang
等等...
注意不是越多越好,一定应该选择的是你项目确实需要的,能说明的你的项目特征的。
给个详细的学习地址: 学习地址
jianshu-go.png
progressed.png
进度示例:
28
示例 :![28](http://progressed.io/bar/28?title=xiewei)
按照markdown 语法,再根据文档的示例,很容易写出一个进度条。
比如我要写一个:标题为:Age, 进度为: 27% 示例
27
示例:![27](http://progressed.io/bar/27?title=Age)
美化不是重点,重点的努力提升代码质量唉。
如何借助 github 开源项目提升自己水平。
我一般的步骤是这样的:
这里提三点:
但初学者、自学者一般都不喜欢或者说不太关注测试。
浏览Github 网站,免不了需要阅读源代码,如果不想 clone 下来,在集成开发环境里看,还有什么办法吗?
有的。Chrome 插件,帮你提升阅读源代码的效率。
插件:
什么? 上不去 chrome 商店,兄dei 是不是要学习访问外国网站?
网络上很多的知识集,搜索成本很大,如果又不会访问外国网站,那再收集知识这一块需要耗费很大的时间。
时间就是金钱啊,更何况程序就那么几年。大家都这么说...
那如何借助 Github 找到你想要的知识:
An awesome list is a list of awesome things curated by the community.
Awesome + 关键字
比如: 想要学习 Python
awesome-python.png
比如:想要学习 Go
awesome-go.png
比如:想看 cheatsheet
awesome-cheatsheet.png
比如:想要学习任意知识
awesome.png
好了,知识集有了,可以针对感兴趣的学习了。
当然你也可以使用自己的关键字搜索,但相信我 Awesome 系列一定能满足你
假如你想了解当天的,或者近期的Github 热门项目,追追趋势?
没问题:
方法一
掘金.png
方法二
方法一就是调用的方法二的API.
github-trending.png
Github 满足你作为程序员需要的所有知识,你唯一缺少的就是踏实的学习。
(完)