文档章节

GitHub连击500天:让理想的编程成为习惯

Phodal
 Phodal
发布于 2016/02/27 23:11
字数 1497
阅读 50
收藏 0

尽管之前已经有100天、200天、365天的文章,但是这不是一篇象征性的500天的文章。对这样的一个事物,每个人都会有不同听看法。有的会说这是一件好事,有的则不是。但是别人的看法终究不重要,因为了解你自己的只有你自己。别人都只是以他们的角度来提出观点。

在这500天里,我发现两点有意思的事,也是总结的时候才意识到的:

  1. 编程的情绪周期
  2. 有意图的练习

那么,当我们不断地练习的时候,我们就可以写出更好的代码。

500天小结

我想你也听过一万小时天才理论的说法:要成为某个领域的专家,需要10000小时。而在这其中每重要的一点是有意图的练习——而不是一直重复性地用不同的语言去写一个相同的算法。如果我们有一天8小时的工作时间 + 2 小时的提高时间,那么我们还是需要1000天才能实现一万小时。

500天与10000小时

当然如果你连做梦也在写代码的话,那么我想500天就够了,哈哈~~。

Gtihub 500

虽然不是连击次数最多的,但是根据Most active GitHub users 的结果来说,好似是大陆提交数最多的人,没有之一。再考虑到提交都是有意义的——不是机器刷出来的,不是有意识的去刷,我觉得还是有很大成就感的。

而要实现500天连击很重要的两点是:时间和idea。但是我觉得idea并不是非常重要的,我们可以造轮子,这一点就是在早期我做得最多的一件事,不断地造轮子——如《造轮子与从Github生成轮子》一文中所说。除此,你还可以用《GitHub去管理你的idea》,每当你想到一个Idea以及完成一个idea的时间你就会多一次提交。

时间则是一件很讽刺的事,因为人们要加班。加班的原因,要么是因为工作的内容很有意思,要么是因为钱。如果不是因为钱的话,为什么不去换个工作呢?比如我司。看似两者间存在很多的对立,但是我总在想技术的提升可以在后期解决收入的问题,而不需要靠加班来解决这个问题。人总是要活着的,钱是必需的,但是程序员的收入都不低。

编程的情绪周期

接着,我观察到了一些有意思的现象——编程的情绪周期也很明显。

所谓“情绪周期”,是指一个人的情绪高潮和低潮的交替过程所经历的时间。

如下图所示的就是情绪周期:

情绪周期

简单地来说,就是有一个时间段写代码的感觉超级爽,有一个时间段不想写代码,但是如果换一个说法就是:有一个时间段看书、写文档的感觉很爽,有一时间段不想看书、写文档的感觉。这也就是为什么在我的GitHub首页上的绿色各种花。不过因为《物联网周报》的原因,我会定期地更新一个相关的开源项目。

但是总来说,我习惯在一些时间造一些轮子、创建文档,这就是为什么我的GitHub会有一些开源电子书的缘故。

有意图的练习

编程需要很长的学习时间,也需要很长的练习时间。尽管我是从小学编程,自认为天赋不错,但是突破了上个门槛还是花费了三四年的时间。其中的很大一部分原因是,没有找对一个合适的方向。而在这期间也没有好好的练习,随后的日子里我意识到我会遇到下一个门槛,便开始试图有意识的练习。

在我开始工作的时候,我写了一篇名为《重新思考工作》的文章。在文章中我提到了几点练习的点:

  • 加强码代码的准确性
  • 写出更整洁的代码
  • 英语口语 (外企)
  • 针对性的加强语言技能

在一些日子的练习后,我发现这还是太无聊了。天生就喜欢一些有意思的东西,有趣才更有激情吧~~。不过,像下图的打字练习还是挺有意思的:

打字练习

还是能打出了一堆错误的字符。但是对比了一下大多数人的人,还算不错,至少是盲打。但是,还是存在着很大的提升空间。

随后,我开始一些错误的练习,如对设计模式和架构的练习。试图去练习一些在生产上用不到的设计模式,以及一些架构模式。而这时就意味着,需要生搬一些设计模式。最后,我开始以项目为目的的练习,这就是为什么我的GitHub上的提交数会有如此多的原因。

预见性练习

还有一种练习比较有意思,算是以工作为导向的练习。当我们预见到我们的项目需要某一些技术,我们可能在未来采用某些技术的时候,我们就需要开始预见性的练习这些技术。

好的一点是:这些项目可能在未来很受初学者欢迎。

总结

每个人都有自己的方向,都有一个不错的发展路线,分享和创造都是不错的路。

THE ONLY FAIR IS NOT FAIR . ENJOY CREATE & SHARE.

欢迎关注我的GitHub: https://github.com/phodal

转发保留: GitHub连击500天:让理想的编程成为习惯

© 著作权归作者所有

共有 人打赏支持
Phodal

Phodal

粉丝 108
博文 23
码字总数 29622
作品 7
深圳
前端工程师
私信 提问
ATOM插件activate-power-mode体验笔记

最近看一篇文章,描述了一个非常NB的编辑器插件,ATOM的插件activate-power-mode: http://mp.weixin.qq.com/s?biz=MjM5NzE1MDA0MQ==&mid=2247484202&idx=1&sn=f303ff6a6ebfa7b0a9a2ee9a852......

北风其凉
2016/11/02
153
0
关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
2018/09/23
0
0
这『六本』电子书能帮助你成为优秀的程序员(含下载地址)

epub、pdf、mobi、rtf,你还需要什么格式呢? 作为一个自诩是 markdown 程序员的 “资深咨询师”,我编写了很多的代码,写了很多文章(我的博客 phodal.com 上有 600+),也写了很多电子书。...

phodal
2017/11/15
0
0
这『六本』电子书能帮助你成为优秀的程序员(含下载地址)

epub、pdf、mobi、rtf,你还需要什么格式呢? 作为一个自谥是 markdown 程序员的 “资深咨询师”,我编写了很多的代码,写了很多文章(我的博客 phodal.com 上有 600+),也写了很多电子书。...

Phodal
2017/11/15
0
0
git文章列表

关于gitlab默认clone协议 Git实现从本地添加项目到远程仓库 翻翻git之---一个简单的标签控件 LabelView (随手发了两张小宝宝的玩耍照) Git 项目推荐 | Java 版微信普通号机器人 翻翻git之---...

d_watson
2016/04/20
26
0

没有更多内容

加载失败,请刷新页面

加载更多

数据库技术-Mysql主从复制与数据备份

数据库技术-Mysql 主从复制的原理: MySQL中数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”...

须臾之余
昨天
10
0
Git远程仓库——GitHub的使用(一)

Git远程仓库——GitHub的使用(一) 一 、 Git远程仓库 由于你的本地仓库和GitHub仓库之间的传输是通过SSH加密的,所以需要一下设置: 步骤一、 创建SSH key 在用户主目录下,看看有没有.ss...

lwenhao
昨天
2
0
SpringBoot 整合

springBoot 整合模板引擎 SpringBoot 整合Mybatis SpringBoot 整合redis SpringBoot 整合定时任务 SpringBoot 整合拦截器...

细节探索者
昨天
0
0
第二个JAVA应用

第二个JAVA应用 方法一:配置文件: # cd /usr/local/tomcat/conf/# vim server.xml</Host> <Host name="www.wangzb.cc" appBase="/data/wwwroot/www.wangzb.cc" //引用所......

wzb88
昨天
0
0
2019年阿里Java面试必问:JVM与性能优化+Redis+设计模式+分布式

前言 一年之计在于春 金三银四已经要到来,2019的新的开始,作为一个开发人员,你是否面上了自己理想的公司,薪资达到心中理想的高度? 面试:如果不准备充分的面试,完全是浪费时间,更是对...

火力全開
昨天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部