你是否曾为业余项目没有进展而惆怅过?想要有完整两天时间(没有任何的放松机会)来编程也不现实,时间的零乱往往让人不知所措。还有一个重要的问题就是你上个星期写的代码,隔一个星期后再接着写,你还能记得多少?
为此,可汗学院计算机科学学院院长暨jQuery创始人John Resig撰文分享了自己的心得和体会。现在,让我们看看John Resig是如何做到每天都写代码的,首先他给自己定下了几条规则:
1. 每天必须写代码。可以写文档、博客或者其他的文章,但是必须要加进自己写的代码。
2. 代码必须是有用的。不要格式化、重构的代码。
3. 代码必须在午夜之前写好(为了避免不想熬夜而草率地写代码)。
4. 代码必须是开源的,且要放到Github上(这样强迫自己小心写代码,并会考虑代码重用性及怎么创建项目前期的模块)。
当然,以上这些规则是灵活的。John Resig之所以制定这么严格的规则,是想提高自己业余项目的开发效率。他已经在连续20周的时间里每天写代码,这给他带来了好的工作习惯。鉴于此,John Resig为大家分享了自己坚持每天做业余项目后的心得体会:
利用最小化的时间写好代码。我强迫自己每天花不少于半个小时来写代码(这真不是一件容易的事,尤其还得回忆前一天写了什么),在工作日期间一般不超过一个小时,但在周末我会花多一些时间做业余项目。
让写代码成为习惯。要知道我并不关心自己在Github上的排名,因为我觉得做业余项目是自己的事,不要为了取悦别人而做。减肥和锻炼也是同样的道理,如果你不在乎提升自己,你永远都不会取得成功。
与不良情绪作斗争。在开始实施每天写代码的计划前期,我时常焦虑项目没有很大的进展,毕竟业余项目没有时间限制。后来我意识到有这样的不良情绪对项目进展一点帮助都没有,反而会阻碍。所以要与不良情绪作斗争,现在我能心平气和地完成大量的工作,再也不会像以前那样为工作的事情忙得焦头烂额了。
安排、利用好周末时间。对大多数人来说,利用周末时间做业余项目是项目取得大进展的绝好机会。而对于我来说,如果直到周末业余项目才能做好我会对自己很失望。之前我很少能完成所有自己想做的工作,这也就强迫自己不参加诸如参观博物馆、游公园等自己喜欢的周末娱乐活动,把时间留给工作。然而现在我强烈地意识到尽管业余项目很重要,但是也不应该忽略个人生活,所以学会安排时间很重要。
潜意识思考。每天做业余项目写代码有一个有趣的副作用,那就是大脑会在潜意识里思考。因此,当我在散步、淋浴或从事其他非脑力活动时,我还在想着下一步代码该怎么写、出现问题了有什么解决的好方法,以前我每星期或者隔一个星期写一次代码从没出现过这样的情况。时间用来思考自然就不会再为业余项目取得的进展少而焦虑了。
每天写一点代码不易忘。当接头做业余项目时总要付出“上下文切换”的代价,然而不幸的是思考是很难接上头的。所以我每天都做一点业余项目,让自己不容易忘记。
管理好时间,平衡工作、生活、业余项目。现在的我已简单地学会了如何更好地维持工作、生活、业余项目的平衡,我知道自己每天都要做业余项目,所以我会更好地管理时间。如果我晚上有活动且很晚才能回家,那么我会在开始工作之前就做好当天的业余项目。假如当天的业余项目没有做完,那么不论多晚我都会完成,做到今日事今日毕。
要及时跟外界沟通。当自己养成了新的习惯后跟外界沟通这是很有好处的。我的伙伴们都知道我每天写代码这个习惯,因此有活动安排时我会跟他们说:“等我写完代码再去。”他们一点都不会介意也很理解我的行为。
代码积少成多。我很难相信自己在过去的几个月写了很多的代码。我新建了几个网站,重新写了框架并创建了大量节点模块。我已经写了这么多以至于有时我都忘记自己写了些什么,但是我真的很高兴我写了这么多的代码。
好的习惯能带来巨大的成功,像每天写代码做业余项目这件事只要你坚持做下去,一定会有意想不到的效果。(文/李京京 责编/钱曙光)
文章主要来源: Ejohn
相关推荐
3、中英代码互转 4、强大的自定义语法提示功能 自定义语法: 1、函数提示 在 设置->系统词库 中设置 2、短语提示 在 设置->常用短语 中设置 3、变量提示 在 设置->常用变量 中设置 4、中英提示 在 设置->...
当一个项目由C#编写,而团队或后续维护者更熟悉VB.NET时,进行代码转换就显得尤为必要。本篇将详细探讨如何将C#代码项目转换为VB.NET项目。 首先,C#和VB.NET都是Microsoft开发的,它们共享.NET Framework或.NET ...
Java2Pas是一个实用工具,主要用于将Java编程语言编写的源代码转换为Pascal语言的等效代码。这个工具对于那些需要在两种语言之间迁移代码或者理解不同编程语言语法的开发者来说非常有价值。Java和Pascal虽然都是面向...
一个很强大的工具, 能将c#代码片段、文件甚至工程直接转换成java代码,并能彻底解决外部引用的DLL问题,最强的是支持c#工程的直接转换,生成的Java代码质量也很不错。软件已破解,去除了未注册版最多只能转换1000行的...
"js2c#"工具正是一个旨在帮助开发者将JavaScript代码转换为C#代码的实用工具。这个工具的亮点在于它能够将JS代码编译成DLL或EXE文件,使得C#项目可以直接引用这些编译后的库,从而实现跨语言的代码复用。 首先,...
快写代码编辑器 功能介绍 1、简洁的界面 2、用中文编写代码 3、中英代码互转 4、强大的自定义语法提示功能 使用说明 自定义语法: 1、函数提示 在 设置->系统词库 中设置 2、短语提示 在 设置->常用短语 中设置 3、...
综上所述,"java转js工具"是一个重要的开发辅助工具,它帮助开发者在Java和JavaScript之间架起桥梁,使得跨平台开发变得更加便捷。然而,使用时需要注意语言特性的差异,以及转换过程中可能出现的问题和挑战。
标题中的“字体及封闭图形G代码自动生成VC源码”是指一个基于Visual C++(VC)的编程项目,它的主要功能是为数控加工生成特定的G代码。G代码,也称为NC(Numerical Control)代码,是计算机数控机床的语言,用于指示...
基于VS2010的MFC实现DXF文件转G代码,包括直线、圆、圆弧、样条曲线、优化多段线、多段线等。包含全部源代码与测试用DXF文件,请使用VS2010先编译后运行,高于VS2010时,需要先转换工程。
C++实现USB HID设备读写代码 C++语言可以实现读取USB HID设备的数据读写,通过使用C++语言编写的代码,可以实现对USB HID设备的控制和交互。下面是关于C++实现USB HID设备读写代码的知识点: 1. USB HID设备概述 ...
DXF转G代码知识点详细说明: DXF文件格式是一种常用于CAD(计算机辅助设计)领域的图形文件格式,它最初由AutoCAD软件的开发者Autodesk公司提出。DXF文件包含了图形对象的数据和属性,可以被多种CAD软件读取和编辑...
UDS诊断ECU升级刷写上位机参考代码主要涉及以下几个关键知识点: 1. **UDS协议结构**:UDS协议由一系列的服务组成,每个服务都有特定的功能,如读数据、写数据、执行测试、识别ECU等。服务通过ISO TP(ISO 15765-2...
JAVA代码转C++代码的工具,可以按照目录进行转换,虽然不是全部都转换的很好,但还是不错的
标题中的"eclipse插件 不用写代码也可以做java界面"指的是Eclipse中的可视化界面设计工具,这些工具允许开发者通过拖拽和配置组件的方式构建GUI,而无需直接编写AWT(Abstract Window Toolkit)或SWING库中的复杂...
为了解决这一问题,"易语言按键精灵代码转换器1.0.5"应运而生,它作为一个创新的工具,旨在帮助开发者实现代码的互转,提高工作效率。 该转换器的核心功能在于解析并转化两种语言的语法结构。易语言以其直观的汉语...
编译原理课的大作业 包含三个小实验 在一个cpp文件里 正则表达式转换为nfa nfa转换为dfa dfa最小化 个人原创代码
1、 代码是集成很多库,JPEG库、BMB转YUV库、24位转256色库、YUV运动预测库,主题代码为大家都共用的ImageProcessing,在01_VC2005文件下面。 2、 本代码不适合于初学者,有些研究2D转3D功底的兄弟可以作为参考,...
每次做android的时候都会有很多json数据,而且里面的属性还要一个一个写在类里面,很麻烦,然后做了这个json转java源代码的工具。 由于是java swing 写的,必须要java环境才能运行哦。 没有要资源分,免费下载。 ...
`lm_rgb2yuv.c`可能包含如下代码: ```c #include "lm_rgb2yuv.h" void rgb2yuv420(unsigned char *rgb, unsigned char *yuv, int width, int height) { int i, j; for (i = 0; i ; i++) { for (j = 0; j ; j++...
适用于java/C/C++等代码,源代码为java代码通过运行代码将代码输入程序框中D盘自动生成伪代码文件PseudoCode.txt。(注意:由于是简单代码只可适用于糊弄老师,实验报告等,不可用于学术研究)。